{
  "_format": "hh-sol-artifact-1",
  "contractName": "GovernanceModule",
  "sourceName": "contracts/protocol/modules/v1/GovernanceModule.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IController",
          "name": "_controller",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IGovernanceAdapter",
          "name": "_governanceAdapter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "_proposalData",
          "type": "bytes"
        }
      ],
      "name": "ProposalCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IGovernanceAdapter",
          "name": "_governanceAdapter",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "_proposalId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "_support",
          "type": "bool"
        }
      ],
      "name": "ProposalVoted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IGovernanceAdapter",
          "name": "_governanceAdapter",
          "type": "address"
        }
      ],
      "name": "RegistrationRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IGovernanceAdapter",
          "name": "_governanceAdapter",
          "type": "address"
        }
      ],
      "name": "RegistrationSubmitted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IGovernanceAdapter",
          "name": "_governanceAdapter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_delegatee",
          "type": "address"
        }
      ],
      "name": "VoteDelegated",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "controller",
      "outputs": [
        {
          "internalType": "contract IController",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "_governanceName",
          "type": "string"
        },
        {
          "internalType": "address",
          "name": "_delegatee",
          "type": "address"
        }
      ],
      "name": "delegate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "_governanceName",
          "type": "string"
        },
        {
          "internalType": "bytes",
          "name": "_proposalData",
          "type": "bytes"
        }
      ],
      "name": "propose",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "_governanceName",
          "type": "string"
        }
      ],
      "name": "register",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "removeModule",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "_governanceName",
          "type": "string"
        }
      ],
      "name": "revoke",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISetToken",
          "name": "_setToken",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "_governanceName",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "_proposalId",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "_support",
          "type": "bool"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "vote",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5060405161150038038061150083398101604081905261002f91610058565b600080546001600160a01b0319166001600160a01b039290921691909117905560018055610086565b600060208284031215610069578081fd5b81516001600160a01b038116811461007f578182fd5b9392505050565b61146b806100956000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c4d66de81161005b578063c4d66de8146100d0578063cfec8387146100e3578063dff85651146100f6578063f77c47911461010957610088565b806332434a2e1461008d57806340493ccf146100a2578063847ef08d146100b5578063afd0224b146100bd575b600080fd5b6100a061009b366004610fbc565b610127565b005b6100a06100b036600461100a565b6102ce565b6100a0610478565b6100a06100cb366004610fbc565b61047a565b6100a06100de366004610fa0565b61060d565b6100a06100f13660046110d5565b61067c565b6100a061010436600461106c565b61082d565b6101116109c1565b60405161011e9190611193565b60405180910390f35b600260015414156101535760405162461bcd60e51b815260040161014a90611336565b60405180910390fd5b600260015581610162816109d0565b600061016d83610a1e565b90506000806060836001600160a01b031663d3da53a4886040518263ffffffff1660e01b81526004016101a09190611193565b60006040518083038186803b1580156101b857600080fd5b505afa1580156101cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101f49190810190610ef1565b925092509250866001600160a01b0316638f6f03328484846040518463ffffffff1660e01b815260040161022a939291906111c0565b600060405180830381600087803b15801561024457600080fd5b505af1158015610258573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102809190810190610f65565b50836001600160a01b0316876001600160a01b03167f28c85356595a6d26a36a8ea64f43fe31fa3ef9c786b5566f80d3d560af3b3a5560405160405180910390a35050600180555050505050565b600260015414156102f15760405162461bcd60e51b815260040161014a90611336565b600260015582610300816109d0565b600061030b84610a1e565b90506000806060836001600160a01b031663d0ae50ae876040518263ffffffff1660e01b815260040161033e9190611193565b60006040518083038186803b15801561035657600080fd5b505afa15801561036a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103929190810190610ef1565b925092509250876001600160a01b0316638f6f03328484846040518463ffffffff1660e01b81526004016103c8939291906111c0565b600060405180830381600087803b1580156103e257600080fd5b505af11580156103f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261041e9190810190610f65565b50836001600160a01b0316886001600160a01b03167f8220b2caa6f0c2c2582472ceea7af3ea32209fc927b466237da9e2c8c4e6553b886040516104629190611193565b60405180910390a3505060018055505050505050565b565b6002600154141561049d5760405162461bcd60e51b815260040161014a90611336565b6002600155816104ac816109d0565b60006104b783610a1e565b90506000806060836001600160a01b031663d5abba996040518163ffffffff1660e01b815260040160006040518083038186803b1580156104f757600080fd5b505afa15801561050b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105339190810190610ef1565b925092509250866001600160a01b0316638f6f03328484846040518463ffffffff1660e01b8152600401610569939291906111c0565b600060405180830381600087803b15801561058357600080fd5b505af1158015610597573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105bf9190810190610f65565b50836001600160a01b0316876001600160a01b03167f287dbe06a6a5acbe985b65078dde5d39ac24d2fd58391bb292b8ef1d08e572f660405160405180910390a35050600180555050505050565b80336106198282610a3c565b8261062381610a66565b836001600160a01b0316630ffe0f1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561065e57600080fd5b505af1158015610672573d6000803e3d6000fd5b5050505050505050565b6002600154141561069f5760405162461bcd60e51b815260040161014a90611336565b6002600155846106ae816109d0565b60006106b986610a1e565b90506000806060836001600160a01b031663a4fed2ce8989896040518463ffffffff1660e01b81526004016106f093929190611376565b60006040518083038186803b15801561070857600080fd5b505afa15801561071c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107449190810190610ef1565b925092509250896001600160a01b0316638f6f03328484846040518463ffffffff1660e01b815260040161077a939291906111c0565b600060405180830381600087803b15801561079457600080fd5b505af11580156107a8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107d09190810190610f65565b5087846001600160a01b03168b6001600160a01b03167fdbfb5295f66731a3476998db46423492cb33fe683f68d98ab13b1a8f922873138a60405161081591906111f0565b60405180910390a45050600180555050505050505050565b600260015414156108505760405162461bcd60e51b815260040161014a90611336565b60026001558261085f816109d0565b600061086a84610a1e565b90506000806060836001600160a01b0316635cb8b5e3876040518263ffffffff1660e01b815260040161089d91906111fb565b60006040518083038186803b1580156108b557600080fd5b505afa1580156108c9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108f19190810190610ef1565b925092509250876001600160a01b0316638f6f03328484846040518463ffffffff1660e01b8152600401610927939291906111c0565b600060405180830381600087803b15801561094157600080fd5b505af1158015610955573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097d9190810190610f65565b50836001600160a01b0316886001600160a01b03167f97960511614a09205f5794e634a82aa9063a669eed5833c847cb423962e9e3058860405161046291906111fb565b6000546001600160a01b031681565b6109da8133610b27565b6109f65760405162461bcd60e51b815260040161014a906112ff565b6109ff81610bb5565b610a1b5760405162461bcd60e51b815260040161014a9061120e565b50565b600080610a2a83610cbf565b9050610a3581610cca565b9392505050565b610a468282610b27565b610a625760405162461bcd60e51b815260040161014a906112ff565b5050565b600054604051631d3af8fb60e21b81526001600160a01b03909116906374ebe3ec90610a96908490600401611193565b60206040518083038186803b158015610aae57600080fd5b505afa158015610ac2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae69190610f49565b610b025760405162461bcd60e51b815260040161014a906112bc565b610b0b81610d87565b610a1b5760405162461bcd60e51b815260040161014a90611256565b6000816001600160a01b0316836001600160a01b031663481c6a756040518163ffffffff1660e01b815260040160206040518083038186803b158015610b6c57600080fd5b505afa158015610b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba49190610ed5565b6001600160a01b0316149392505050565b60008054604051631d3af8fb60e21b81526001600160a01b03909116906374ebe3ec90610be6908590600401611193565b60206040518083038186803b158015610bfe57600080fd5b505afa158015610c12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c369190610f49565b8015610cb957506040516335fc6c9f60e21b81526001600160a01b0383169063d7f1b27c90610c69903090600401611193565b60206040518083038186803b158015610c8157600080fd5b505afa158015610c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190610f49565b92915050565b805160209091012090565b600080548190610ce2906001600160a01b0316610db6565b6001600160a01b031663e6d642c530856040518363ffffffff1660e01b8152600401610d0f9291906111a7565b60206040518083038186803b158015610d2757600080fd5b505afa158015610d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5f9190610ed5565b90506001600160a01b038116610cb95760405162461bcd60e51b815260040161014a9061128d565b6040516353bae5f760e01b81526000906001600160a01b038316906353bae5f790610c69903090600401611193565b6040516373b2e76b60e11b81526000906001600160a01b0383169063e765ced690610de590849060040161136d565b60206040518083038186803b158015610dfd57600080fd5b505afa158015610e11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190610ed5565b600082601f830112610e45578081fd5b8135610e58610e53826113be565b611397565b9150808252836020828501011115610e6f57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112610e98578081fd5b8151610ea6610e53826113be565b9150808252836020828501011115610ebd57600080fd5b610ece8160208401602086016113e2565b5092915050565b600060208284031215610ee6578081fd5b8151610a3581611412565b600080600060608486031215610f05578182fd5b8351610f1081611412565b60208501516040860151919450925067ffffffffffffffff811115610f33578182fd5b610f3f86828701610e88565b9150509250925092565b600060208284031215610f5a578081fd5b8151610a3581611427565b600060208284031215610f76578081fd5b815167ffffffffffffffff811115610f8c578182fd5b610f9884828501610e88565b949350505050565b600060208284031215610fb1578081fd5b8135610a3581611412565b60008060408385031215610fce578182fd5b8235610fd981611412565b9150602083013567ffffffffffffffff811115610ff4578182fd5b61100085828601610e35565b9150509250929050565b60008060006060848603121561101e578283fd5b833561102981611412565b9250602084013567ffffffffffffffff811115611044578283fd5b61105086828701610e35565b925050604084013561106181611412565b809150509250925092565b600080600060608486031215611080578283fd5b833561108b81611412565b9250602084013567ffffffffffffffff808211156110a7578384fd5b6110b387838801610e35565b935060408601359150808211156110c8578283fd5b50610f3f86828701610e35565b600080600080600060a086880312156110ec578081fd5b85356110f781611412565b9450602086013567ffffffffffffffff80821115611113578283fd5b61111f89838a01610e35565b9550604088013594506060880135915061113882611427565b9092506080870135908082111561114d578283fd5b5061115a88828901610e35565b9150509295509295909350565b6000815180845261117f8160208601602086016113e2565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b600060018060a01b0385168252836020830152606060408301526111e76060830184611167565b95945050505050565b901515815260200190565b600060208252610a356020830184611167565b60208082526028908201527f4d75737420626520612076616c696420616e6420696e697469616c697a65642060408201526729b2ba2a37b5b2b760c11b606082015260800190565b6020808252601e908201527f4d7573742062652070656e64696e6720696e697469616c697a6174696f6e0000604082015260600190565b60208082526015908201527426bab9ba103132903b30b634b21030b230b83a32b960591b604082015260600190565b60208082526023908201527f4d75737420626520636f6e74726f6c6c65722d656e61626c656420536574546f60408201526235b2b760e91b606082015260800190565b6020808252601c908201527f4d7573742062652074686520536574546f6b656e206d616e6167657200000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b90815260200190565b60008482528315156020830152606060408301526111e76060830184611167565b60405181810167ffffffffffffffff811182821017156113b657600080fd5b604052919050565b600067ffffffffffffffff8211156113d4578081fd5b50601f01601f191660200190565b60005b838110156113fd5781810151838201526020016113e5565b8381111561140c576000848401525b50505050565b6001600160a01b0381168114610a1b57600080fd5b8015158114610a1b57600080fdfea264697066735822122085eeddaedc4250fca2b69b8794dcf6670a3a2532041233db3fc736e747f35f1f64736f6c634300060a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063c4d66de81161005b578063c4d66de8146100d0578063cfec8387146100e3578063dff85651146100f6578063f77c47911461010957610088565b806332434a2e1461008d57806340493ccf146100a2578063847ef08d146100b5578063afd0224b146100bd575b600080fd5b6100a061009b366004610fbc565b610127565b005b6100a06100b036600461100a565b6102ce565b6100a0610478565b6100a06100cb366004610fbc565b61047a565b6100a06100de366004610fa0565b61060d565b6100a06100f13660046110d5565b61067c565b6100a061010436600461106c565b61082d565b6101116109c1565b60405161011e9190611193565b60405180910390f35b600260015414156101535760405162461bcd60e51b815260040161014a90611336565b60405180910390fd5b600260015581610162816109d0565b600061016d83610a1e565b90506000806060836001600160a01b031663d3da53a4886040518263ffffffff1660e01b81526004016101a09190611193565b60006040518083038186803b1580156101b857600080fd5b505afa1580156101cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101f49190810190610ef1565b925092509250866001600160a01b0316638f6f03328484846040518463ffffffff1660e01b815260040161022a939291906111c0565b600060405180830381600087803b15801561024457600080fd5b505af1158015610258573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102809190810190610f65565b50836001600160a01b0316876001600160a01b03167f28c85356595a6d26a36a8ea64f43fe31fa3ef9c786b5566f80d3d560af3b3a5560405160405180910390a35050600180555050505050565b600260015414156102f15760405162461bcd60e51b815260040161014a90611336565b600260015582610300816109d0565b600061030b84610a1e565b90506000806060836001600160a01b031663d0ae50ae876040518263ffffffff1660e01b815260040161033e9190611193565b60006040518083038186803b15801561035657600080fd5b505afa15801561036a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103929190810190610ef1565b925092509250876001600160a01b0316638f6f03328484846040518463ffffffff1660e01b81526004016103c8939291906111c0565b600060405180830381600087803b1580156103e257600080fd5b505af11580156103f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261041e9190810190610f65565b50836001600160a01b0316886001600160a01b03167f8220b2caa6f0c2c2582472ceea7af3ea32209fc927b466237da9e2c8c4e6553b886040516104629190611193565b60405180910390a3505060018055505050505050565b565b6002600154141561049d5760405162461bcd60e51b815260040161014a90611336565b6002600155816104ac816109d0565b60006104b783610a1e565b90506000806060836001600160a01b031663d5abba996040518163ffffffff1660e01b815260040160006040518083038186803b1580156104f757600080fd5b505afa15801561050b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105339190810190610ef1565b925092509250866001600160a01b0316638f6f03328484846040518463ffffffff1660e01b8152600401610569939291906111c0565b600060405180830381600087803b15801561058357600080fd5b505af1158015610597573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105bf9190810190610f65565b50836001600160a01b0316876001600160a01b03167f287dbe06a6a5acbe985b65078dde5d39ac24d2fd58391bb292b8ef1d08e572f660405160405180910390a35050600180555050505050565b80336106198282610a3c565b8261062381610a66565b836001600160a01b0316630ffe0f1e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561065e57600080fd5b505af1158015610672573d6000803e3d6000fd5b5050505050505050565b6002600154141561069f5760405162461bcd60e51b815260040161014a90611336565b6002600155846106ae816109d0565b60006106b986610a1e565b90506000806060836001600160a01b031663a4fed2ce8989896040518463ffffffff1660e01b81526004016106f093929190611376565b60006040518083038186803b15801561070857600080fd5b505afa15801561071c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107449190810190610ef1565b925092509250896001600160a01b0316638f6f03328484846040518463ffffffff1660e01b815260040161077a939291906111c0565b600060405180830381600087803b15801561079457600080fd5b505af11580156107a8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107d09190810190610f65565b5087846001600160a01b03168b6001600160a01b03167fdbfb5295f66731a3476998db46423492cb33fe683f68d98ab13b1a8f922873138a60405161081591906111f0565b60405180910390a45050600180555050505050505050565b600260015414156108505760405162461bcd60e51b815260040161014a90611336565b60026001558261085f816109d0565b600061086a84610a1e565b90506000806060836001600160a01b0316635cb8b5e3876040518263ffffffff1660e01b815260040161089d91906111fb565b60006040518083038186803b1580156108b557600080fd5b505afa1580156108c9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108f19190810190610ef1565b925092509250876001600160a01b0316638f6f03328484846040518463ffffffff1660e01b8152600401610927939291906111c0565b600060405180830381600087803b15801561094157600080fd5b505af1158015610955573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097d9190810190610f65565b50836001600160a01b0316886001600160a01b03167f97960511614a09205f5794e634a82aa9063a669eed5833c847cb423962e9e3058860405161046291906111fb565b6000546001600160a01b031681565b6109da8133610b27565b6109f65760405162461bcd60e51b815260040161014a906112ff565b6109ff81610bb5565b610a1b5760405162461bcd60e51b815260040161014a9061120e565b50565b600080610a2a83610cbf565b9050610a3581610cca565b9392505050565b610a468282610b27565b610a625760405162461bcd60e51b815260040161014a906112ff565b5050565b600054604051631d3af8fb60e21b81526001600160a01b03909116906374ebe3ec90610a96908490600401611193565b60206040518083038186803b158015610aae57600080fd5b505afa158015610ac2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae69190610f49565b610b025760405162461bcd60e51b815260040161014a906112bc565b610b0b81610d87565b610a1b5760405162461bcd60e51b815260040161014a90611256565b6000816001600160a01b0316836001600160a01b031663481c6a756040518163ffffffff1660e01b815260040160206040518083038186803b158015610b6c57600080fd5b505afa158015610b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba49190610ed5565b6001600160a01b0316149392505050565b60008054604051631d3af8fb60e21b81526001600160a01b03909116906374ebe3ec90610be6908590600401611193565b60206040518083038186803b158015610bfe57600080fd5b505afa158015610c12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c369190610f49565b8015610cb957506040516335fc6c9f60e21b81526001600160a01b0383169063d7f1b27c90610c69903090600401611193565b60206040518083038186803b158015610c8157600080fd5b505afa158015610c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190610f49565b92915050565b805160209091012090565b600080548190610ce2906001600160a01b0316610db6565b6001600160a01b031663e6d642c530856040518363ffffffff1660e01b8152600401610d0f9291906111a7565b60206040518083038186803b158015610d2757600080fd5b505afa158015610d3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5f9190610ed5565b90506001600160a01b038116610cb95760405162461bcd60e51b815260040161014a9061128d565b6040516353bae5f760e01b81526000906001600160a01b038316906353bae5f790610c69903090600401611193565b6040516373b2e76b60e11b81526000906001600160a01b0383169063e765ced690610de590849060040161136d565b60206040518083038186803b158015610dfd57600080fd5b505afa158015610e11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190610ed5565b600082601f830112610e45578081fd5b8135610e58610e53826113be565b611397565b9150808252836020828501011115610e6f57600080fd5b8060208401602084013760009082016020015292915050565b600082601f830112610e98578081fd5b8151610ea6610e53826113be565b9150808252836020828501011115610ebd57600080fd5b610ece8160208401602086016113e2565b5092915050565b600060208284031215610ee6578081fd5b8151610a3581611412565b600080600060608486031215610f05578182fd5b8351610f1081611412565b60208501516040860151919450925067ffffffffffffffff811115610f33578182fd5b610f3f86828701610e88565b9150509250925092565b600060208284031215610f5a578081fd5b8151610a3581611427565b600060208284031215610f76578081fd5b815167ffffffffffffffff811115610f8c578182fd5b610f9884828501610e88565b949350505050565b600060208284031215610fb1578081fd5b8135610a3581611412565b60008060408385031215610fce578182fd5b8235610fd981611412565b9150602083013567ffffffffffffffff811115610ff4578182fd5b61100085828601610e35565b9150509250929050565b60008060006060848603121561101e578283fd5b833561102981611412565b9250602084013567ffffffffffffffff811115611044578283fd5b61105086828701610e35565b925050604084013561106181611412565b809150509250925092565b600080600060608486031215611080578283fd5b833561108b81611412565b9250602084013567ffffffffffffffff808211156110a7578384fd5b6110b387838801610e35565b935060408601359150808211156110c8578283fd5b50610f3f86828701610e35565b600080600080600060a086880312156110ec578081fd5b85356110f781611412565b9450602086013567ffffffffffffffff80821115611113578283fd5b61111f89838a01610e35565b9550604088013594506060880135915061113882611427565b9092506080870135908082111561114d578283fd5b5061115a88828901610e35565b9150509295509295909350565b6000815180845261117f8160208601602086016113e2565b601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b600060018060a01b0385168252836020830152606060408301526111e76060830184611167565b95945050505050565b901515815260200190565b600060208252610a356020830184611167565b60208082526028908201527f4d75737420626520612076616c696420616e6420696e697469616c697a65642060408201526729b2ba2a37b5b2b760c11b606082015260800190565b6020808252601e908201527f4d7573742062652070656e64696e6720696e697469616c697a6174696f6e0000604082015260600190565b60208082526015908201527426bab9ba103132903b30b634b21030b230b83a32b960591b604082015260600190565b60208082526023908201527f4d75737420626520636f6e74726f6c6c65722d656e61626c656420536574546f60408201526235b2b760e91b606082015260800190565b6020808252601c908201527f4d7573742062652074686520536574546f6b656e206d616e6167657200000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b90815260200190565b60008482528315156020830152606060408301526111e76060830184611167565b60405181810167ffffffffffffffff811182821017156113b657600080fd5b604052919050565b600067ffffffffffffffff8211156113d4578081fd5b50601f01601f191660200190565b60005b838110156113fd5781810151838201526020016113e5565b8381111561140c576000848401525b50505050565b6001600160a01b0381168114610a1b57600080fd5b8015158114610a1b57600080fdfea264697066735822122085eeddaedc4250fca2b69b8794dcf6670a3a2532041233db3fc736e747f35f1f64736f6c634300060a0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
