dgf-prototype/backend/contractArtifacts/DAO.json

834 lines
84 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "DAO",
"sourceName": "contracts/core/DAO.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract Reputation",
"name": "reputation_",
"type": "address"
},
{
"internalType": "contract Forum",
"name": "forum_",
"type": "address"
},
{
"internalType": "contract Bench",
"name": "bench_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "id",
"type": "string"
}
],
"name": "PostAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
}
],
"name": "ValidationPoolInitiated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bool",
"name": "votePasses",
"type": "bool"
},
{
"indexed": false,
"internalType": "bool",
"name": "quorumMet",
"type": "bool"
}
],
"name": "ValidationPoolResolved",
"type": "event"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint256",
"name": "weightPPM",
"type": "uint256"
},
{
"internalType": "address",
"name": "authorAddress",
"type": "address"
}
],
"internalType": "struct Author[]",
"name": "authors",
"type": "tuple[]"
},
{
"internalType": "string",
"name": "postId",
"type": "string"
},
{
"components": [
{
"internalType": "int256",
"name": "weightPPM",
"type": "int256"
},
{
"internalType": "string",
"name": "targetPostId",
"type": "string"
}
],
"internalType": "struct Citation[]",
"name": "citations",
"type": "tuple[]"
}
],
"name": "addPost",
"outputs": [],
"stateMutability": "nonpayable",
"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": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bool",
"name": "inFavor",
"type": "bool"
}
],
"name": "delegatedStakeOnValidationPool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "distributeFeeAmongMembers",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "id",
"type": "string"
}
],
"name": "emitPostAdded",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
}
],
"name": "emitValidationPoolInitiated",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
},
{
"internalType": "bool",
"name": "votePasses",
"type": "bool"
},
{
"internalType": "bool",
"name": "quorumMet",
"type": "bool"
}
],
"name": "emitValidationPoolResolved",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
}
],
"name": "evaluateOutcome",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "forwardAllowance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "postId",
"type": "string"
}
],
"name": "getPostAuthors",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "weightPPM",
"type": "uint256"
},
{
"internalType": "address",
"name": "authorAddress",
"type": "address"
}
],
"internalType": "struct Author[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "postId",
"type": "string"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "uint256[2]",
"name": "quorum",
"type": "uint256[2]"
},
{
"internalType": "uint256[2]",
"name": "winRatio",
"type": "uint256[2]"
},
{
"internalType": "uint256",
"name": "bindingPercent",
"type": "uint256"
},
{
"internalType": "bool",
"name": "redistributeLosingStakes",
"type": "bool"
},
{
"internalType": "bool",
"name": "callbackOnValidate",
"type": "bool"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"name": "initiateValidationPool",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "isMember",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "memberCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "members",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "bool",
"name": "votePasses",
"type": "bool"
},
{
"internalType": "bool",
"name": "quorumMet",
"type": "bool"
},
{
"internalType": "uint256",
"name": "stakedFor",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "stakedAgainst",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"name": "onValidate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "postCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "postIndex",
"type": "uint256"
}
],
"name": "postIds",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "postId",
"type": "string"
}
],
"name": "posts",
"outputs": [
{
"internalType": "string",
"name": "id",
"type": "string"
},
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "reputation",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "postId",
"type": "string"
},
{
"internalType": "int256",
"name": "amount",
"type": "int256"
}
],
"name": "propagateReputation",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "registerMember",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "spendAllowance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "stakeAvailability",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bool",
"name": "inFavor",
"type": "bool"
}
],
"name": "stakeOnValidationPool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "update",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "validationPoolCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
}
],
"name": "validationPools",
"outputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "stakeCount",
"type": "uint256"
},
{
"components": [
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "uint256[2]",
"name": "quorum",
"type": "uint256[2]"
},
{
"internalType": "uint256[2]",
"name": "winRatio",
"type": "uint256[2]"
},
{
"internalType": "uint256",
"name": "bindingPercent",
"type": "uint256"
},
{
"internalType": "bool",
"name": "redistributeLosingStakes",
"type": "bool"
}
],
"internalType": "struct ValidationPoolParams",
"name": "params",
"type": "tuple"
},
{
"components": [
{
"internalType": "string",
"name": "postId",
"type": "string"
},
{
"internalType": "uint256",
"name": "fee",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minted",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endTime",
"type": "uint256"
},
{
"internalType": "bool",
"name": "resolved",
"type": "bool"
},
{
"internalType": "bool",
"name": "outcome",
"type": "bool"
}
],
"internalType": "struct ValidationPoolProps",
"name": "props",
"type": "tuple"
},
{
"internalType": "bool",
"name": "callbackOnValidate",
"type": "bool"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b50604051620044d7380380620044d78339818101604052810190620000379190620003bb565b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe0d695a306040518263ffffffff1660e01b815260040162000154919062000482565b600060405180830381600087803b1580156200016f57600080fd5b505af115801562000184573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe0d695a306040518263ffffffff1660e01b8152600401620001e5919062000482565b600060405180830381600087803b1580156200020057600080fd5b505af115801562000215573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe0d695a306040518263ffffffff1660e01b815260040162000276919062000482565b600060405180830381600087803b1580156200029157600080fd5b505af1158015620002a6573d6000803e3d6000fd5b505050505050506200049f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002e582620002b8565b9050919050565b6000620002f982620002d8565b9050919050565b6200030b81620002ec565b81146200031757600080fd5b50565b6000815190506200032b8162000300565b92915050565b60006200033e82620002d8565b9050919050565b620003508162000331565b81146200035c57600080fd5b50565b600081519050620003708162000345565b92915050565b60006200038382620002d8565b9050919050565b620003958162000376565b8114620003a157600080fd5b50565b600081519050620003b5816200038a565b92915050565b600080600060608486031215620003d757620003d6620002b3565b5b6000620003e7868287016200031a565b9350506020620003fa868287016200035f565b92505060406200040d86828701620003a4565b9150509250925092565b6000819050919050565b6000620004426200043c6200043684620002b8565b62000417565b620002b8565b9050919050565b6000620004568262000421565b9050919050565b60006200046a8262000449565b9050919050565b6200047c816200045d565b82525050565b600060208201905062000499600083018462000471565b92915050565b61402880620004af6000396000f3fe6080604052600436106101cd5760003560e01c806388380274116100f7578063a233627911610095578063dd8aaa4f11610064578063dd8aaa4f146106a6578063e5b4d827146106cf578063f8300fca146106f8578063fcb4888e14610737576101cd565b8063a2336279146105c0578063da66863a14610603578063dc00bbfe14610640578063dd62ed3e14610669576101cd565b80639dc29fac116100d15780639dc29fac146105015780639fbe7c731461052a5780639fd098721461055a578063a230c52414610583576101cd565b806388380274146104725780638ce516da146104af578063975762b3146104d8576101cd565b806340c10f191161016f5780635ffc70041161013e5780635ffc7004146103b8578063642b5bfb146103e157806370a082311461040c57806378e21c6e14610449576101cd565b806340c10f19146102ec57806350cde8ef146103155780635c253c0b146103525780635daf08ca1461037b576101cd565b806318160ddd116101ab57806318160ddd146102655780631d0d37c9146102905780631e57e078146102b95780632d17c062146102c3576101cd565b806311aee380146101d257806317906c2e146101fd57806317c1821714610228575b600080fd5b3480156101de57600080fd5b506101e7610760565b6040516101f49190611e8b565b60405180910390f35b34801561020957600080fd5b50610212610766565b60405161021f9190611e8b565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a9190611ee6565b6107fe565b60405161025c9190611f2e565b60405180910390f35b34801561027157600080fd5b5061027a6108a5565b6040516102879190611e8b565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612038565b61093c565b005b6102c1610aa2565b005b3480156102cf57600080fd5b506102ea60048036038101906102e591906120e7565b610ba8565b005b3480156102f857600080fd5b50610313600480360381019061030e919061213a565b610c8b565b005b34801561032157600080fd5b5061033c60048036038101906103379190611ee6565b610e04565b604051610349919061220a565b60405180910390f35b34801561035e57600080fd5b506103796004803603810190610374919061235c565b610eae565b005b34801561038757600080fd5b506103a2600480360381019061039d9190611ee6565b610ee8565b6040516103af91906123b4565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da91906123cf565b610f1b565b005b3480156103ed57600080fd5b506103f6610faf565b6040516104039190611e8b565b60405180910390f35b34801561041857600080fd5b50610433600480360381019061042e9190612422565b611047565b6040516104409190611e8b565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b919061244f565b6110eb565b005b34801561047e57600080fd5b50610499600480360381019061049491906124a2565b61112b565b6040516104a69190611f2e565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d191906123cf565b61124b565b005b3480156104e457600080fd5b506104ff60048036038101906104fa91906124f5565b6113c7565b005b34801561050d57600080fd5b506105286004803603810190610523919061213a565b611489565b005b610544600480360381019061053f91906125d4565b611602565b6040516105519190611e8b565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c9190612703565b6116c7565b005b34801561058f57600080fd5b506105aa60048036038101906105a59190612422565b611771565b6040516105b79190611f2e565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190611ee6565b611791565b6040516105fa97969594939291906129a9565b60405180910390f35b34801561060f57600080fd5b5061062a60048036038101906106259190612a2a565b611864565b6040516106379190612b64565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190611ee6565b611911565b005b34801561067557600080fd5b50610690600480360381019061068b9190612b86565b61194b565b60405161069d9190611e8b565b60405180910390f35b3480156106b257600080fd5b506106cd60048036038101906106c891906123cf565b6119f2565b005b3480156106db57600080fd5b506106f660048036038101906106f19190612c72565b611a86565b005b34801561070457600080fd5b5061071f600480360381019061071a9190612a2a565b611b27565b60405161072e93929190612d26565b60405180910390f35b34801561074357600080fd5b5061075e60048036038101906107599190612422565b611bdc565b005b60045481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317906c2e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f99190612d79565b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317c18217836040518263ffffffff1660e01b815260040161085b9190611e8b565b6020604051808303816000875af115801561087a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089e9190612dbb565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109379190612d79565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806109e55750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b90612e5a565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1663b4e6a1d58787878787876040518763ffffffff1660e01b8152600401610a6796959493929190612ea7565b600060405180830381600087803b158015610a8157600080fd5b505af1158015610a95573d6000803e3d6000fd5b5050505050505050505050565b600080600090505b600454811015610ba45760006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060006001600454610afd9190612f32565b831015610b3f57610b0c6108a5565b610b1583611047565b34610b209190612f66565b610b2a9190612fd7565b90508084610b389190613008565b9350610b4e565b8334610b4b9190612f32565b90505b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b94573d6000803e3d6000fd5b5050508080600101915050610aaa565b5050565b81610bb233611047565b1015610bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bea906130ae565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663217c1961843385856040518563ffffffff1660e01b8152600401610c5494939291906130ce565b600060405180830381600087803b158015610c6e57600080fd5b505af1158015610c82573d6000803e3d6000fd5b50505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d345750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90613185565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610dce9291906131a5565b600060405180830381600087803b158015610de857600080fd5b505af1158015610dfc573d6000803e3d6000fd5b505050505050565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350cde8ef836040518263ffffffff1660e01b8152600401610e619190611e8b565b600060405180830381865afa158015610e7e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610ea7919061323e565b9050919050565b7fbd6277baf8ced6ab6543a1aef164635fc2bde1ba962d39d8a0fd81a5af24972781604051610edd919061220a565b60405180910390a150565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ffc70048484846040518463ffffffff1660e01b8152600401610f7893929190613287565b600060405180830381600087803b158015610f9257600080fd5b505af1158015610fa6573d6000803e3d6000fd5b50505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663642b5bfb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561101e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110429190612d79565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b81526004016110a391906123b4565b602060405180830381865afa1580156110c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e49190612d79565b9050919050565b7fae8941f3b4d152118273444f36b8b5642e5602102b789968bd4b7cf8b250de8183838360405161111e939291906132be565b60405180910390a1505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1f21c67338686611177338a61194b565b6111819190613008565b6040518463ffffffff1660e01b815260040161119f93929190613287565b600060405180830381600087803b1580156111b957600080fd5b505af11580156111cd573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff1663216ed6ad3385856040518463ffffffff1660e01b815260040161120e939291906132f5565b600060405180830381600087803b15801561122857600080fd5b505af115801561123c573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112f45750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132a9061339e565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ce516da8484846040518463ffffffff1660e01b815260040161139093929190613287565b600060405180830381600087803b1580156113aa57600080fd5b505af11580156113be573d6000803e3d6000fd5b50505050505050565b816113d2843361194b565b10156113e5576113e2833361194b565b91505b6113f08333846119f2565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663217c1961858585856040518563ffffffff1660e01b815260040161145194939291906130ce565b600060405180830381600087803b15801561146b57600080fd5b505af115801561147f573d6000803e3d6000fd5b5050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115325750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156890613430565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac83836040518363ffffffff1660e01b81526004016115cc9291906131a5565b600060405180830381600087803b1580156115e657600080fd5b505af11580156115fa573d6000803e3d6000fd5b505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1a38bf934338e8e8e8e8e8e8e8e8e8e6040518d63ffffffff1660e01b81526004016116749b9a99989796959493929190613496565b60206040518083038185885af1158015611692573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116b79190612d79565b90509a9950505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317e19f2483836000806040518563ffffffff1660e01b8152600401611729949392919061358b565b6020604051808303816000875af1158015611748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176c91906135ec565b505050565b60056020528060005260406000206000915054906101000a900460ff1681565b600080600061179e611dd9565b6117a6611e16565b60006060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a2336279896040518263ffffffff1660e01b81526004016118059190611e8b565b600060405180830381865afa158015611822573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061184b91906138d2565b9650965096509650965096509650919395979092949650565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da66863a84846040518363ffffffff1660e01b81526004016118c39291906139b0565b600060405180830381865afa1580156118e0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906119099190613ae7565b905092915050565b7f6e5c598b821d7fa8550e5fea58ab6e27c59e1cbe1df75a8591aa0c453b49e10a816040516119409190611e8b565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b81526004016119a9929190613b30565b602060405180830381865afa1580156119c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ea9190612d79565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd8aaa4f8484846040518463ffffffff1660e01b8152600401611a4f93929190613287565b600060405180830381600087803b158015611a6957600080fd5b505af1158015611a7d573d6000803e3d6000fd5b50505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b96129b338888888888886040518863ffffffff1660e01b8152600401611aed9796959493929190613e49565b600060405180830381600087803b158015611b0757600080fd5b505af1158015611b1b573d6000803e3d6000fd5b50505050505050505050565b6060600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f8300fca86866040518363ffffffff1660e01b8152600401611b899291906139b0565b600060405180830381865afa158015611ba6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611bcf9190613ea9565b9250925092509250925092565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611c855750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb90613f8a565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611dd657806003600060046000815480929190611d2d90613faa565b91905055815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b6040518060a0016040528060008152602001611df3611e50565b8152602001611e00611e50565b8152602001600081526020016000151581525090565b6040518060c00160405280606081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b6040518060400160405280600290602082028036833780820191505090505090565b6000819050919050565b611e8581611e72565b82525050565b6000602082019050611ea06000830184611e7c565b92915050565b6000604051905090565b600080fd5b600080fd5b611ec381611e72565b8114611ece57600080fd5b50565b600081359050611ee081611eba565b92915050565b600060208284031215611efc57611efb611eb0565b5b6000611f0a84828501611ed1565b91505092915050565b60008115159050919050565b611f2881611f13565b82525050565b6000602082019050611f436000830184611f1f565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f7482611f49565b9050919050565b611f8481611f69565b8114611f8f57600080fd5b50565b600081359050611fa181611f7b565b92915050565b611fb081611f13565b8114611fbb57600080fd5b50565b600081359050611fcd81611fa7565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611ff857611ff7611fd3565b5b8235905067ffffffffffffffff81111561201557612014611fd8565b5b60208301915083600182028301111561203157612030611fdd565b5b9250929050565b600080600080600080600060c0888a03121561205757612056611eb0565b5b60006120658a828b01611f92565b97505060206120768a828b01611fbe565b96505060406120878a828b01611fbe565b95505060606120988a828b01611ed1565b94505060806120a98a828b01611ed1565b93505060a088013567ffffffffffffffff8111156120ca576120c9611eb5565b5b6120d68a828b01611fe2565b925092505092959891949750929550565b600080600060608486031215612100576120ff611eb0565b5b600061210e86828701611ed1565b935050602061211f86828701611ed1565b925050604061213086828701611fbe565b9150509250925092565b6000806040838503121561215157612150611eb0565b5b600061215f85828601611f92565b925050602061217085828601611ed1565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121b4578082015181840152602081019050612199565b60008484015250505050565b6000601f19601f8301169050919050565b60006121dc8261217a565b6121e68185612185565b93506121f6818560208601612196565b6121ff816121c0565b840191505092915050565b6000602082019050818103600083015261222481846121d1565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612269826121c0565b810181811067ffffffffffffffff8211171561228857612287612231565b5b80604052505050565b600061229b611ea6565b90506122a78282612260565b919050565b600067ffffffffffffffff8211156122c7576122c6612231565b5b6122d0826121c0565b9050602081019050919050565b82818337600083830152505050565b60006122ff6122fa846122ac565b612291565b90508281526020810184848401111561231b5761231a61222c565b5b6123268482856122dd565b509392505050565b600082601f83011261234357612342611fd3565b5b81356123538482602086016122ec565b91505092915050565b60006020828403121561237257612371611eb0565b5b600082013567ffffffffffffffff8111156123905761238f611eb5565b5b61239c8482850161232e565b91505092915050565b6123ae81611f69565b82525050565b60006020820190506123c960008301846123a5565b92915050565b6000806000606084860312156123e8576123e7611eb0565b5b60006123f686828701611f92565b935050602061240786828701611f92565b925050604061241886828701611ed1565b9150509250925092565b60006020828403121561243857612437611eb0565b5b600061244684828501611f92565b91505092915050565b60008060006060848603121561246857612467611eb0565b5b600061247686828701611ed1565b935050602061248786828701611fbe565b925050604061249886828701611fbe565b9150509250925092565b6000806000606084860312156124bb576124ba611eb0565b5b60006124c986828701611f92565b93505060206124da86828701611ed1565b92505060406124eb86828701611ed1565b9150509250925092565b6000806000806080858703121561250f5761250e611eb0565b5b600061251d87828801611ed1565b945050602061252e87828801611f92565b935050604061253f87828801611ed1565b925050606061255087828801611fbe565b91505092959194509250565b60008083601f84011261257257612571611fd3565b5b8235905067ffffffffffffffff81111561258f5761258e611fd8565b5b6020830191508360018202830111156125ab576125aa611fdd565b5b9250929050565b6000819050826020600202820111156125ce576125cd611fdd565b5b92915050565b6000806000806000806000806000806101408b8d0312156125f8576125f7611eb0565b5b60008b013567ffffffffffffffff81111561261657612615611eb5565b5b6126228d828e0161255c565b9a509a505060206126358d828e01611ed1565b98505060406126468d828e016125b2565b97505060806126578d828e016125b2565b96505060c06126688d828e01611ed1565b95505060e06126798d828e01611fbe565b94505061010061268b8d828e01611fbe565b9350506101208b013567ffffffffffffffff8111156126ad576126ac611eb5565b5b6126b98d828e01611fe2565b92509250509295989b9194979a5092959850565b6000819050919050565b6126e0816126cd565b81146126eb57600080fd5b50565b6000813590506126fd816126d7565b92915050565b6000806040838503121561271a57612719611eb0565b5b600083013567ffffffffffffffff81111561273857612737611eb5565b5b6127448582860161232e565b9250506020612755858286016126ee565b9150509250929050565b61276881611e72565b82525050565b600060029050919050565b600081905092915050565b6000819050919050565b600061279a838361275f565b60208301905092915050565b6000602082019050919050565b6127bc8161276e565b6127c68184612779565b92506127d182612784565b8060005b838110156128025781516127e9878261278e565b96506127f4836127a6565b9250506001810190506127d5565b505050505050565b61281381611f13565b82525050565b60e08201600082015161282f600085018261275f565b50602082015161284260208501826127b3565b50604082015161285560608501826127b3565b50606082015161286860a085018261275f565b50608082015161287b60c085018261280a565b50505050565b600082825260208201905092915050565b600061289d8261217a565b6128a78185612881565b93506128b7818560208601612196565b6128c0816121c0565b840191505092915050565b600060c08301600083015184820360008601526128e88282612892565b91505060208301516128fd602086018261275f565b506040830151612910604086018261275f565b506060830151612923606086018261275f565b506080830151612936608086018261280a565b5060a083015161294960a086018261280a565b508091505092915050565b600081519050919050565b600082825260208201905092915050565b600061297b82612954565b612985818561295f565b9350612995818560208601612196565b61299e816121c0565b840191505092915050565b60006101a0820190506129bf600083018a611e7c565b6129cc60208301896123a5565b6129d96040830188611e7c565b6129e66060830187612819565b8181036101408301526129f981866128cb565b9050612a09610160830185611f1f565b818103610180830152612a1c8184612970565b905098975050505050505050565b60008060208385031215612a4157612a40611eb0565b5b600083013567ffffffffffffffff811115612a5f57612a5e611eb5565b5b612a6b8582860161255c565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612aac81611f69565b82525050565b604082016000820151612ac8600085018261275f565b506020820151612adb6020850182612aa3565b50505050565b6000612aed8383612ab2565b60408301905092915050565b6000602082019050919050565b6000612b1182612a77565b612b1b8185612a82565b9350612b2683612a93565b8060005b83811015612b57578151612b3e8882612ae1565b9750612b4983612af9565b925050600181019050612b2a565b5085935050505092915050565b60006020820190508181036000830152612b7e8184612b06565b905092915050565b60008060408385031215612b9d57612b9c611eb0565b5b6000612bab85828601611f92565b9250506020612bbc85828601611f92565b9150509250929050565b60008083601f840112612bdc57612bdb611fd3565b5b8235905067ffffffffffffffff811115612bf957612bf8611fd8565b5b602083019150836040820283011115612c1557612c14611fdd565b5b9250929050565b60008083601f840112612c3257612c31611fd3565b5b8235905067ffffffffffffffff811115612c4f57612c4e611fd8565b5b602083019150836020820283011115612c6b57612c6a611fdd565b5b9250929050565b60008060008060008060608789031215612c8f57612c8e611eb0565b5b600087013567ffffffffffffffff811115612cad57612cac611eb5565b5b612cb989828a01612bc6565b9650965050602087013567ffffffffffffffff811115612cdc57612cdb611eb5565b5b612ce889828a0161255c565b9450945050604087013567ffffffffffffffff811115612d0b57612d0a611eb5565b5b612d1789828a01612c1c565b92509250509295509295509295565b60006060820190508181036000830152612d4081866121d1565b9050612d4f60208301856123a5565b612d5c6040830184611e7c565b949350505050565b600081519050612d7381611eba565b92915050565b600060208284031215612d8f57612d8e611eb0565b5b6000612d9d84828501612d64565b91505092915050565b600081519050612db581611fa7565b92915050565b600060208284031215612dd157612dd0611eb0565b5b6000612ddf84828501612da6565b91505092915050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f206f6e56616c6964617465000000000000000000000000000000000000000000602082015250565b6000612e44602b83612185565b9150612e4f82612de8565b604082019050919050565b60006020820190508181036000830152612e7381612e37565b9050919050565b6000612e86838561295f565b9350612e938385846122dd565b612e9c836121c0565b840190509392505050565b600060a082019050612ebc6000830189611f1f565b612ec96020830188611f1f565b612ed66040830187611e7c565b612ee36060830186611e7c565b8181036080830152612ef6818486612e7a565b9050979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f3d82611e72565b9150612f4883611e72565b9250828203905081811115612f6057612f5f612f03565b5b92915050565b6000612f7182611e72565b9150612f7c83611e72565b9250828202612f8a81611e72565b91508282048414831517612fa157612fa0612f03565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fe282611e72565b9150612fed83611e72565b925082612ffd57612ffc612fa8565b5b828204905092915050565b600061301382611e72565b915061301e83611e72565b925082820190508082111561303657613035612f03565b5b92915050565b7f496e73756666696369656e74205245502062616c616e636520746f20636f766560008201527f72207374616b6500000000000000000000000000000000000000000000000000602082015250565b6000613098602783612185565b91506130a38261303c565b604082019050919050565b600060208201905081810360008301526130c78161308b565b9050919050565b60006080820190506130e36000830187611e7c565b6130f060208301866123a5565b6130fd6040830185611e7c565b61310a6060830184611f1f565b95945050505050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f206d696e74000000000000000000000000000000000000000000000000000000602082015250565b600061316f602583612185565b915061317a82613113565b604082019050919050565b6000602082019050818103600083015261319e81613162565b9050919050565b60006040820190506131ba60008301856123a5565b6131c76020830184611e7c565b9392505050565b60006131e16131dc846122ac565b612291565b9050828152602081018484840111156131fd576131fc61222c565b5b613208848285612196565b509392505050565b600082601f83011261322557613224611fd3565b5b81516132358482602086016131ce565b91505092915050565b60006020828403121561325457613253611eb0565b5b600082015167ffffffffffffffff81111561327257613271611eb5565b5b61327e84828501613210565b91505092915050565b600060608201905061329c60008301866123a5565b6132a960208301856123a5565b6132b66040830184611e7c565b949350505050565b60006060820190506132d36000830186611e7c565b6132e06020830185611f1f565b6132ed6040830184611f1f565b949350505050565b600060608201905061330a60008301866123a5565b6133176020830185611e7c565b6133246040830184611e7c565b949350505050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f2075706461746500000000000000000000000000000000000000000000000000602082015250565b6000613388602783612185565b91506133938261332c565b604082019050919050565b600060208201905081810360008301526133b78161337b565b9050919050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f206275726e000000000000000000000000000000000000000000000000000000602082015250565b600061341a602583612185565b9150613425826133be565b604082019050919050565b600060208201905081810360008301526134498161340d565b9050919050565b600061345c8385612185565b93506134698385846122dd565b613472836121c0565b840190509392505050565b82818337505050565b6134926040838361347d565b5050565b6000610160820190506134ac600083018e6123a5565b81810360208301526134bf818c8e613450565b90506134ce604083018b611e7c565b6134db606083018a613486565b6134e860a0830189613486565b6134f560e0830188611e7c565b613503610100830187611f1f565b613511610120830186611f1f565b818103610140830152613525818486612e7a565b90509c9b505050505050505050505050565b613540816126cd565b82525050565b6000819050919050565b6000819050919050565b600061357561357061356b84613546565b613550565b611e72565b9050919050565b6135858161355a565b82525050565b600060808201905081810360008301526135a581876121d1565b90506135b46020830186613537565b6135c16040830185611f1f565b6135ce606083018461357c565b95945050505050565b6000815190506135e6816126d7565b92915050565b60006020828403121561360257613601611eb0565b5b6000613610848285016135d7565b91505092915050565b60008151905061362881611f7b565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff82111561365357613652612231565b5b602082029050919050565b600061367161366c84613638565b612291565b9050806020840283018581111561368b5761368a611fdd565b5b835b818110156136b457806136a08882612d64565b84526020840193505060208101905061368d565b5050509392505050565b600082601f8301126136d3576136d2611fd3565b5b60026136e084828561365e565b91505092915050565b600060e082840312156136ff576136fe61362e565b5b61370960a0612291565b9050600061371984828501612d64565b600083015250602061372d848285016136be565b6020830152506060613741848285016136be565b60408301525060a061375584828501612d64565b60608301525060c061376984828501612da6565b60808301525092915050565b600060c0828403121561378b5761378a61362e565b5b61379560c0612291565b9050600082015167ffffffffffffffff8111156137b5576137b4613633565b5b6137c184828501613210565b60008301525060206137d584828501612d64565b60208301525060406137e984828501612d64565b60408301525060606137fd84828501612d64565b606083015250608061381184828501612da6565b60808301525060a061382584828501612da6565b60a08301525092915050565b600067ffffffffffffffff82111561384c5761384b612231565b5b613855826121c0565b9050602081019050919050565b600061387561387084613831565b612291565b9050828152602081018484840111156138915761389061222c565b5b61389c848285612196565b509392505050565b600082601f8301126138b9576138b8611fd3565b5b81516138c9848260208601613862565b91505092915050565b60008060008060008060006101a0888a0312156138f2576138f1611eb0565b5b60006139008a828b01612d64565b97505060206139118a828b01613619565b96505060406139228a828b01612d64565b95505060606139338a828b016136e9565b94505061014088015167ffffffffffffffff81111561395557613954611eb5565b5b6139618a828b01613775565b9350506101606139738a828b01612da6565b92505061018088015167ffffffffffffffff81111561399557613994611eb5565b5b6139a18a828b016138a4565b91505092959891949750929550565b600060208201905081810360008301526139cb818486613450565b90509392505050565b600067ffffffffffffffff8211156139ef576139ee612231565b5b602082029050602081019050919050565b600060408284031215613a1657613a1561362e565b5b613a206040612291565b90506000613a3084828501612d64565b6000830152506020613a4484828501613619565b60208301525092915050565b6000613a63613a5e846139d4565b612291565b90508083825260208201905060408402830185811115613a8657613a85611fdd565b5b835b81811015613aaf5780613a9b8882613a00565b845260208401935050604081019050613a88565b5050509392505050565b600082601f830112613ace57613acd611fd3565b5b8151613ade848260208601613a50565b91505092915050565b600060208284031215613afd57613afc611eb0565b5b600082015167ffffffffffffffff811115613b1b57613b1a611eb5565b5b613b2784828501613ab9565b91505092915050565b6000604082019050613b4560008301856123a5565b613b5260208301846123a5565b9392505050565b6000819050919050565b6000613b726020840184611ed1565b905092915050565b6000613b896020840184611f92565b905092915050565b60408201613ba26000830183613b63565b613baf600085018261275f565b50613bbd6020830183613b7a565b613bca6020850182612aa3565b50505050565b6000613bdc8383613b91565b60408301905092915050565b600082905092915050565b6000604082019050919050565b6000613c0c8385612a82565b9350613c1782613b59565b8060005b85811015613c5057613c2d8284613be8565b613c378882613bd0565b9750613c4283613bf3565b925050600181019050613c1b565b5085925050509392505050565b600082825260208201905092915050565b6000819050919050565b6000613c8760208401846126ee565b905092915050565b613c98816126cd565b82525050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613cca57613cc9613ca8565b5b83810192508235915060208301925067ffffffffffffffff821115613cf257613cf1613c9e565b5b600182023603831315613d0857613d07613ca3565b5b509250929050565b6000613d1c8385612881565b9350613d298385846122dd565b613d32836121c0565b840190509392505050565b600060408301613d506000840184613c78565b613d5d6000860182613c8f565b50613d6b6020840184613cad565b8583036020870152613d7e838284613d10565b925050508091505092915050565b6000613d988383613d3d565b905092915050565b600082356001604003833603038112613dbc57613dbb613ca8565b5b82810191505092915050565b6000602082019050919050565b6000613de18385613c5d565b935083602084028501613df384613c6e565b8060005b87811015613e37578484038952613e0e8284613da0565b613e188582613d8c565b9450613e2383613dc8565b925060208a01995050600181019050613df7565b50829750879450505050509392505050565b6000608082019050613e5e600083018a6123a5565b8181036020830152613e7181888a613c00565b90508181036040830152613e86818688613450565b90508181036060830152613e9b818486613dd5565b905098975050505050505050565b600080600060608486031215613ec257613ec1611eb0565b5b600084015167ffffffffffffffff811115613ee057613edf611eb5565b5b613eec86828701613210565b9350506020613efd86828701613619565b9250506040613f0e86828701612d64565b9150509250925092565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f2072656769737465724d656d6265720000000000000000000000000000000000602082015250565b6000613f74602f83612185565b9150613f7f82613f18565b604082019050919050565b60006020820190508181036000830152613fa381613f67565b9050919050565b6000613fb582611e72565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613fe757613fe6612f03565b5b60018201905091905056fea26469706673582212207b49f01b15e861982a84410c7784f2d3a7ebd82c8401c037e60c874d2de3ec7e64736f6c63430008180033",
"deployedBytecode": "0x6080604052600436106101cd5760003560e01c806388380274116100f7578063a233627911610095578063dd8aaa4f11610064578063dd8aaa4f146106a6578063e5b4d827146106cf578063f8300fca146106f8578063fcb4888e14610737576101cd565b8063a2336279146105c0578063da66863a14610603578063dc00bbfe14610640578063dd62ed3e14610669576101cd565b80639dc29fac116100d15780639dc29fac146105015780639fbe7c731461052a5780639fd098721461055a578063a230c52414610583576101cd565b806388380274146104725780638ce516da146104af578063975762b3146104d8576101cd565b806340c10f191161016f5780635ffc70041161013e5780635ffc7004146103b8578063642b5bfb146103e157806370a082311461040c57806378e21c6e14610449576101cd565b806340c10f19146102ec57806350cde8ef146103155780635c253c0b146103525780635daf08ca1461037b576101cd565b806318160ddd116101ab57806318160ddd146102655780631d0d37c9146102905780631e57e078146102b95780632d17c062146102c3576101cd565b806311aee380146101d257806317906c2e146101fd57806317c1821714610228575b600080fd5b3480156101de57600080fd5b506101e7610760565b6040516101f49190611e8b565b60405180910390f35b34801561020957600080fd5b50610212610766565b60405161021f9190611e8b565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a9190611ee6565b6107fe565b60405161025c9190611f2e565b60405180910390f35b34801561027157600080fd5b5061027a6108a5565b6040516102879190611e8b565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612038565b61093c565b005b6102c1610aa2565b005b3480156102cf57600080fd5b506102ea60048036038101906102e591906120e7565b610ba8565b005b3480156102f857600080fd5b50610313600480360381019061030e919061213a565b610c8b565b005b34801561032157600080fd5b5061033c60048036038101906103379190611ee6565b610e04565b604051610349919061220a565b60405180910390f35b34801561035e57600080fd5b506103796004803603810190610374919061235c565b610eae565b005b34801561038757600080fd5b506103a2600480360381019061039d9190611ee6565b610ee8565b6040516103af91906123b4565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da91906123cf565b610f1b565b005b3480156103ed57600080fd5b506103f6610faf565b6040516104039190611e8b565b60405180910390f35b34801561041857600080fd5b50610433600480360381019061042e9190612422565b611047565b6040516104409190611e8b565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b919061244f565b6110eb565b005b34801561047e57600080fd5b50610499600480360381019061049491906124a2565b61112b565b6040516104a69190611f2e565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d191906123cf565b61124b565b005b3480156104e457600080fd5b506104ff60048036038101906104fa91906124f5565b6113c7565b005b34801561050d57600080fd5b506105286004803603810190610523919061213a565b611489565b005b610544600480360381019061053f91906125d4565b611602565b6040516105519190611e8b565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c9190612703565b6116c7565b005b34801561058f57600080fd5b506105aa60048036038101906105a59190612422565b611771565b6040516105b79190611f2e565b60405180910390f35b3480156105cc57600080fd5b506105e760048036038101906105e29190611ee6565b611791565b6040516105fa97969594939291906129a9565b60405180910390f35b34801561060f57600080fd5b5061062a60048036038101906106259190612a2a565b611864565b6040516106379190612b64565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190611ee6565b611911565b005b34801561067557600080fd5b50610690600480360381019061068b9190612b86565b61194b565b60405161069d9190611e8b565b60405180910390f35b3480156106b257600080fd5b506106cd60048036038101906106c891906123cf565b6119f2565b005b3480156106db57600080fd5b506106f660048036038101906106f19190612c72565b611a86565b005b34801561070457600080fd5b5061071f600480360381019061071a9190612a2a565b611b27565b60405161072e93929190612d26565b60405180910390f35b34801561074357600080fd5b5061075e60048036038101906107599190612422565b611bdc565b005b60045481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317906c2e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f99190612d79565b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317c18217836040518263ffffffff1660e01b815260040161085b9190611e8b565b6020604051808303816000875af115801561087a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089e9190612dbb565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109379190612d79565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806109e55750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b90612e5a565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1663b4e6a1d58787878787876040518763ffffffff1660e01b8152600401610a6796959493929190612ea7565b600060405180830381600087803b158015610a8157600080fd5b505af1158015610a95573d6000803e3d6000fd5b5050505050505050505050565b600080600090505b600454811015610ba45760006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060006001600454610afd9190612f32565b831015610b3f57610b0c6108a5565b610b1583611047565b34610b209190612f66565b610b2a9190612fd7565b90508084610b389190613008565b9350610b4e565b8334610b4b9190612f32565b90505b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b94573d6000803e3d6000fd5b5050508080600101915050610aaa565b5050565b81610bb233611047565b1015610bf3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bea906130ae565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663217c1961843385856040518563ffffffff1660e01b8152600401610c5494939291906130ce565b600060405180830381600087803b158015610c6e57600080fd5b505af1158015610c82573d6000803e3d6000fd5b50505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610d345750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90613185565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610dce9291906131a5565b600060405180830381600087803b158015610de857600080fd5b505af1158015610dfc573d6000803e3d6000fd5b505050505050565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350cde8ef836040518263ffffffff1660e01b8152600401610e619190611e8b565b600060405180830381865afa158015610e7e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610ea7919061323e565b9050919050565b7fbd6277baf8ced6ab6543a1aef164635fc2bde1ba962d39d8a0fd81a5af24972781604051610edd919061220a565b60405180910390a150565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ffc70048484846040518463ffffffff1660e01b8152600401610f7893929190613287565b600060405180830381600087803b158015610f9257600080fd5b505af1158015610fa6573d6000803e3d6000fd5b50505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663642b5bfb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561101e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110429190612d79565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b81526004016110a391906123b4565b602060405180830381865afa1580156110c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e49190612d79565b9050919050565b7fae8941f3b4d152118273444f36b8b5642e5602102b789968bd4b7cf8b250de8183838360405161111e939291906132be565b60405180910390a1505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1f21c67338686611177338a61194b565b6111819190613008565b6040518463ffffffff1660e01b815260040161119f93929190613287565b600060405180830381600087803b1580156111b957600080fd5b505af11580156111cd573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff1663216ed6ad3385856040518463ffffffff1660e01b815260040161120e939291906132f5565b600060405180830381600087803b15801561122857600080fd5b505af115801561123c573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112f45750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132a9061339e565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ce516da8484846040518463ffffffff1660e01b815260040161139093929190613287565b600060405180830381600087803b1580156113aa57600080fd5b505af11580156113be573d6000803e3d6000fd5b50505050505050565b816113d2843361194b565b10156113e5576113e2833361194b565b91505b6113f08333846119f2565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663217c1961858585856040518563ffffffff1660e01b815260040161145194939291906130ce565b600060405180830381600087803b15801561146b57600080fd5b505af115801561147f573d6000803e3d6000fd5b5050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115325750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156890613430565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac83836040518363ffffffff1660e01b81526004016115cc9291906131a5565b600060405180830381600087803b1580156115e657600080fd5b505af11580156115fa573d6000803e3d6000fd5b505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1a38bf934338e8e8e8e8e8e8e8e8e8e6040518d63ffffffff1660e01b81526004016116749b9a99989796959493929190613496565b60206040518083038185885af1158015611692573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116b79190612d79565b90509a9950505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317e19f2483836000806040518563ffffffff1660e01b8152600401611729949392919061358b565b6020604051808303816000875af1158015611748573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176c91906135ec565b505050565b60056020528060005260406000206000915054906101000a900460ff1681565b600080600061179e611dd9565b6117a6611e16565b60006060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a2336279896040518263ffffffff1660e01b81526004016118059190611e8b565b600060405180830381865afa158015611822573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061184b91906138d2565b9650965096509650965096509650919395979092949650565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da66863a84846040518363ffffffff1660e01b81526004016118c39291906139b0565b600060405180830381865afa1580156118e0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906119099190613ae7565b905092915050565b7f6e5c598b821d7fa8550e5fea58ab6e27c59e1cbe1df75a8591aa0c453b49e10a816040516119409190611e8b565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b81526004016119a9929190613b30565b602060405180830381865afa1580156119c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ea9190612d79565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd8aaa4f8484846040518463ffffffff1660e01b8152600401611a4f93929190613287565b600060405180830381600087803b158015611a6957600080fd5b505af1158015611a7d573d6000803e3d6000fd5b50505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b96129b338888888888886040518863ffffffff1660e01b8152600401611aed9796959493929190613e49565b600060405180830381600087803b158015611b0757600080fd5b505af1158015611b1b573d6000803e3d6000fd5b50505050505050505050565b6060600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f8300fca86866040518363ffffffff1660e01b8152600401611b899291906139b0565b600060405180830381865afa158015611ba6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611bcf9190613ea9565b9250925092509250925092565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611c855750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbb90613f8a565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611dd657806003600060046000815480929190611d2d90613faa565b91905055815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b6040518060a0016040528060008152602001611df3611e50565b8152602001611e00611e50565b8152602001600081526020016000151581525090565b6040518060c00160405280606081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b6040518060400160405280600290602082028036833780820191505090505090565b6000819050919050565b611e8581611e72565b82525050565b6000602082019050611ea06000830184611e7c565b92915050565b6000604051905090565b600080fd5b600080fd5b611ec381611e72565b8114611ece57600080fd5b50565b600081359050611ee081611eba565b92915050565b600060208284031215611efc57611efb611eb0565b5b6000611f0a84828501611ed1565b91505092915050565b60008115159050919050565b611f2881611f13565b82525050565b6000602082019050611f436000830184611f1f565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f7482611f49565b9050919050565b611f8481611f69565b8114611f8f57600080fd5b50565b600081359050611fa181611f7b565b92915050565b611fb081611f13565b8114611fbb57600080fd5b50565b600081359050611fcd81611fa7565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611ff857611ff7611fd3565b5b8235905067ffffffffffffffff81111561201557612014611fd8565b5b60208301915083600182028301111561203157612030611fdd565b5b9250929050565b600080600080600080600060c0888a03121561205757612056611eb0565b5b60006120658a828b01611f92565b97505060206120768a828b01611fbe565b96505060406120878a828b01611fbe565b95505060606120988a828b01611ed1565b94505060806120a98a828b01611ed1565b93505060a088013567ffffffffffffffff8111156120ca576120c9611eb5565b5b6120d68a828b01611fe2565b925092505092959891949750929550565b600080600060608486031215612100576120ff611eb0565b5b600061210e86828701611ed1565b935050602061211f86828701611ed1565b925050604061213086828701611fbe565b9150509250925092565b6000806040838503121561215157612150611eb0565b5b600061215f85828601611f92565b925050602061217085828601611ed1565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121b4578082015181840152602081019050612199565b60008484015250505050565b6000601f19601f8301169050919050565b60006121dc8261217a565b6121e68185612185565b93506121f6818560208601612196565b6121ff816121c0565b840191505092915050565b6000602082019050818103600083015261222481846121d1565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612269826121c0565b810181811067ffffffffffffffff8211171561228857612287612231565b5b80604052505050565b600061229b611ea6565b90506122a78282612260565b919050565b600067ffffffffffffffff8211156122c7576122c6612231565b5b6122d0826121c0565b9050602081019050919050565b82818337600083830152505050565b60006122ff6122fa846122ac565b612291565b90508281526020810184848401111561231b5761231a61222c565b5b6123268482856122dd565b509392505050565b600082601f83011261234357612342611fd3565b5b81356123538482602086016122ec565b91505092915050565b60006020828403121561237257612371611eb0565b5b600082013567ffffffffffffffff8111156123905761238f611eb5565b5b61239c8482850161232e565b91505092915050565b6123ae81611f69565b82525050565b60006020820190506123c960008301846123a5565b92915050565b6000806000606084860312156123e8576123e7611eb0565b5b60006123f686828701611f92565b935050602061240786828701611f92565b925050604061241886828701611ed1565b9150509250925092565b60006020828403121561243857612437611eb0565b5b600061244684828501611f92565b91505092915050565b60008060006060848603121561246857612467611eb0565b5b600061247686828701611ed1565b935050602061248786828701611fbe565b925050604061249886828701611fbe565b9150509250925092565b6000806000606084860312156124bb576124ba611eb0565b5b60006124c986828701611f92565b93505060206124da86828701611ed1565b92505060406124eb86828701611ed1565b9150509250925092565b6000806000806080858703121561250f5761250e611eb0565b5b600061251d87828801611ed1565b945050602061252e87828801611f92565b935050604061253f87828801611ed1565b925050606061255087828801611fbe565b91505092959194509250565b60008083601f84011261257257612571611fd3565b5b8235905067ffffffffffffffff81111561258f5761258e611fd8565b5b6020830191508360018202830111156125ab576125aa611fdd565b5b9250929050565b6000819050826020600202820111156125ce576125cd611fdd565b5b92915050565b6000806000806000806000806000806101408b8d0312156125f8576125f7611eb0565b5b60008b013567ffffffffffffffff81111561261657612615611eb5565b5b6126228d828e0161255c565b9a509a505060206126358d828e01611ed1565b98505060406126468d828e016125b2565b97505060806126578d828e016125b2565b96505060c06126688d828e01611ed1565b95505060e06126798d828e01611fbe565b94505061010061268b8d828e01611fbe565b9350506101208b013567ffffffffffffffff8111156126ad576126ac611eb5565b5b6126b98d828e01611fe2565b92509250509295989b9194979a5092959850565b6000819050919050565b6126e0816126cd565b81146126eb57600080fd5b50565b6000813590506126fd816126d7565b92915050565b6000806040838503121561271a57612719611eb0565b5b600083013567ffffffffffffffff81111561273857612737611eb5565b5b6127448582860161232e565b9250506020612755858286016126ee565b9150509250929050565b61276881611e72565b82525050565b600060029050919050565b600081905092915050565b6000819050919050565b600061279a838361275f565b60208301905092915050565b6000602082019050919050565b6127bc8161276e565b6127c68184612779565b92506127d182612784565b8060005b838110156128025781516127e9878261278e565b96506127f4836127a6565b9250506001810190506127d5565b505050505050565b61281381611f13565b82525050565b60e08201600082015161282f600085018261275f565b50602082015161284260208501826127b3565b50604082015161285560608501826127b3565b50606082015161286860a085018261275f565b50608082015161287b60c085018261280a565b50505050565b600082825260208201905092915050565b600061289d8261217a565b6128a78185612881565b93506128b7818560208601612196565b6128c0816121c0565b840191505092915050565b600060c08301600083015184820360008601526128e88282612892565b91505060208301516128fd602086018261275f565b506040830151612910604086018261275f565b506060830151612923606086018261275f565b506080830151612936608086018261280a565b5060a083015161294960a086018261280a565b508091505092915050565b600081519050919050565b600082825260208201905092915050565b600061297b82612954565b612985818561295f565b9350612995818560208601612196565b61299e816121c0565b840191505092915050565b60006101a0820190506129bf600083018a611e7c565b6129cc60208301896123a5565b6129d96040830188611e7c565b6129e66060830187612819565b8181036101408301526129f981866128cb565b9050612a09610160830185611f1f565b818103610180830152612a1c8184612970565b905098975050505050505050565b60008060208385031215612a4157612a40611eb0565b5b600083013567ffffffffffffffff811115612a5f57612a5e611eb5565b5b612a6b8582860161255c565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612aac81611f69565b82525050565b604082016000820151612ac8600085018261275f565b506020820151612adb6020850182612aa3565b50505050565b6000612aed8383612ab2565b60408301905092915050565b6000602082019050919050565b6000612b1182612a77565b612b1b8185612a82565b9350612b2683612a93565b8060005b83811015612b57578151612b3e8882612ae1565b9750612b4983612af9565b925050600181019050612b2a565b5085935050505092915050565b60006020820190508181036000830152612b7e8184612b06565b905092915050565b60008060408385031215612b9d57612b9c611eb0565b5b6000612bab85828601611f92565b9250506020612bbc85828601611f92565b9150509250929050565b60008083601f840112612bdc57612bdb611fd3565b5b8235905067ffffffffffffffff811115612bf957612bf8611fd8565b5b602083019150836040820283011115612c1557612c14611fdd565b5b9250929050565b60008083601f840112612c3257612c31611fd3565b5b8235905067ffffffffffffffff811115612c4f57612c4e611fd8565b5b602083019150836020820283011115612c6b57612c6a611fdd565b5b9250929050565b60008060008060008060608789031215612c8f57612c8e611eb0565b5b600087013567ffffffffffffffff811115612cad57612cac611eb5565b5b612cb989828a01612bc6565b9650965050602087013567ffffffffffffffff811115612cdc57612cdb611eb5565b5b612ce889828a0161255c565b9450945050604087013567ffffffffffffffff811115612d0b57612d0a611eb5565b5b612d1789828a01612c1c565b92509250509295509295509295565b60006060820190508181036000830152612d4081866121d1565b9050612d4f60208301856123a5565b612d5c6040830184611e7c565b949350505050565b600081519050612d7381611eba565b92915050565b600060208284031215612d8f57612d8e611eb0565b5b6000612d9d84828501612d64565b91505092915050565b600081519050612db581611fa7565b92915050565b600060208284031215612dd157612dd0611eb0565b5b6000612ddf84828501612da6565b91505092915050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f206f6e56616c6964617465000000000000000000000000000000000000000000602082015250565b6000612e44602b83612185565b9150612e4f82612de8565b604082019050919050565b60006020820190508181036000830152612e7381612e37565b9050919050565b6000612e86838561295f565b9350612e938385846122dd565b612e9c836121c0565b840190509392505050565b600060a082019050612ebc6000830189611f1f565b612ec96020830188611f1f565b612ed66040830187611e7c565b612ee36060830186611e7c565b8181036080830152612ef6818486612e7a565b9050979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f3d82611e72565b9150612f4883611e72565b9250828203905081811115612f6057612f5f612f03565b5b92915050565b6000612f7182611e72565b9150612f7c83611e72565b9250828202612f8a81611e72565b91508282048414831517612fa157612fa0612f03565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fe282611e72565b9150612fed83611e72565b925082612ffd57612ffc612fa8565b5b828204905092915050565b600061301382611e72565b915061301e83611e72565b925082820190508082111561303657613035612f03565b5b92915050565b7f496e73756666696369656e74205245502062616c616e636520746f20636f766560008201527f72207374616b6500000000000000000000000000000000000000000000000000602082015250565b6000613098602783612185565b91506130a38261303c565b604082019050919050565b600060208201905081810360008301526130c78161308b565b9050919050565b60006080820190506130e36000830187611e7c565b6130f060208301866123a5565b6130fd6040830185611e7c565b61310a6060830184611f1f565b95945050505050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f206d696e74000000000000000000000000000000000000000000000000000000602082015250565b600061316f602583612185565b915061317a82613113565b604082019050919050565b6000602082019050818103600083015261319e81613162565b9050919050565b60006040820190506131ba60008301856123a5565b6131c76020830184611e7c565b9392505050565b60006131e16131dc846122ac565b612291565b9050828152602081018484840111156131fd576131fc61222c565b5b613208848285612196565b509392505050565b600082601f83011261322557613224611fd3565b5b81516132358482602086016131ce565b91505092915050565b60006020828403121561325457613253611eb0565b5b600082015167ffffffffffffffff81111561327257613271611eb5565b5b61327e84828501613210565b91505092915050565b600060608201905061329c60008301866123a5565b6132a960208301856123a5565b6132b66040830184611e7c565b949350505050565b60006060820190506132d36000830186611e7c565b6132e06020830185611f1f565b6132ed6040830184611f1f565b949350505050565b600060608201905061330a60008301866123a5565b6133176020830185611e7c565b6133246040830184611e7c565b949350505050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f2075706461746500000000000000000000000000000000000000000000000000602082015250565b6000613388602783612185565b91506133938261332c565b604082019050919050565b600060208201905081810360008301526133b78161337b565b9050919050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f206275726e000000000000000000000000000000000000000000000000000000602082015250565b600061341a602583612185565b9150613425826133be565b604082019050919050565b600060208201905081810360008301526134498161340d565b9050919050565b600061345c8385612185565b93506134698385846122dd565b613472836121c0565b840190509392505050565b82818337505050565b6134926040838361347d565b5050565b6000610160820190506134ac600083018e6123a5565b81810360208301526134bf818c8e613450565b90506134ce604083018b611e7c565b6134db606083018a613486565b6134e860a0830189613486565b6134f560e0830188611e7c565b613503610100830187611f1f565b613511610120830186611f1f565b818103610140830152613525818486612e7a565b90509c9b505050505050505050505050565b613540816126cd565b82525050565b6000819050919050565b6000819050919050565b600061357561357061356b84613546565b613550565b611e72565b9050919050565b6135858161355a565b82525050565b600060808201905081810360008301526135a581876121d1565b90506135b46020830186613537565b6135c16040830185611f1f565b6135ce606083018461357c565b95945050505050565b6000815190506135e6816126d7565b92915050565b60006020828403121561360257613601611eb0565b5b6000613610848285016135d7565b91505092915050565b60008151905061362881611f7b565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff82111561365357613652612231565b5b602082029050919050565b600061367161366c84613638565b612291565b9050806020840283018581111561368b5761368a611fdd565b5b835b818110156136b457806136a08882612d64565b84526020840193505060208101905061368d565b5050509392505050565b600082601f8301126136d3576136d2611fd3565b5b60026136e084828561365e565b91505092915050565b600060e082840312156136ff576136fe61362e565b5b61370960a0612291565b9050600061371984828501612d64565b600083015250602061372d848285016136be565b6020830152506060613741848285016136be565b60408301525060a061375584828501612d64565b60608301525060c061376984828501612da6565b60808301525092915050565b600060c0828403121561378b5761378a61362e565b5b61379560c0612291565b9050600082015167ffffffffffffffff8111156137b5576137b4613633565b5b6137c184828501613210565b60008301525060206137d584828501612d64565b60208301525060406137e984828501612d64565b60408301525060606137fd84828501612d64565b606083015250608061381184828501612da6565b60808301525060a061382584828501612da6565b60a08301525092915050565b600067ffffffffffffffff82111561384c5761384b612231565b5b613855826121c0565b9050602081019050919050565b600061387561387084613831565b612291565b9050828152602081018484840111156138915761389061222c565b5b61389c848285612196565b509392505050565b600082601f8301126138b9576138b8611fd3565b5b81516138c9848260208601613862565b91505092915050565b60008060008060008060006101a0888a0312156138f2576138f1611eb0565b5b60006139008a828b01612d64565b97505060206139118a828b01613619565b96505060406139228a828b01612d64565b95505060606139338a828b016136e9565b94505061014088015167ffffffffffffffff81111561395557613954611eb5565b5b6139618a828b01613775565b9350506101606139738a828b01612da6565b92505061018088015167ffffffffffffffff81111561399557613994611eb5565b5b6139a18a828b016138a4565b91505092959891949750929550565b600060208201905081810360008301526139cb818486613450565b90509392505050565b600067ffffffffffffffff8211156139ef576139ee612231565b5b602082029050602081019050919050565b600060408284031215613a1657613a1561362e565b5b613a206040612291565b90506000613a3084828501612d64565b6000830152506020613a4484828501613619565b60208301525092915050565b6000613a63613a5e846139d4565b612291565b90508083825260208201905060408402830185811115613a8657613a85611fdd565b5b835b81811015613aaf5780613a9b8882613a00565b845260208401935050604081019050613a88565b5050509392505050565b600082601f830112613ace57613acd611fd3565b5b8151613ade848260208601613a50565b91505092915050565b600060208284031215613afd57613afc611eb0565b5b600082015167ffffffffffffffff811115613b1b57613b1a611eb5565b5b613b2784828501613ab9565b91505092915050565b6000604082019050613b4560008301856123a5565b613b5260208301846123a5565b9392505050565b6000819050919050565b6000613b726020840184611ed1565b905092915050565b6000613b896020840184611f92565b905092915050565b60408201613ba26000830183613b63565b613baf600085018261275f565b50613bbd6020830183613b7a565b613bca6020850182612aa3565b50505050565b6000613bdc8383613b91565b60408301905092915050565b600082905092915050565b6000604082019050919050565b6000613c0c8385612a82565b9350613c1782613b59565b8060005b85811015613c5057613c2d8284613be8565b613c378882613bd0565b9750613c4283613bf3565b925050600181019050613c1b565b5085925050509392505050565b600082825260208201905092915050565b6000819050919050565b6000613c8760208401846126ee565b905092915050565b613c98816126cd565b82525050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613cca57613cc9613ca8565b5b83810192508235915060208301925067ffffffffffffffff821115613cf257613cf1613c9e565b5b600182023603831315613d0857613d07613ca3565b5b509250929050565b6000613d1c8385612881565b9350613d298385846122dd565b613d32836121c0565b840190509392505050565b600060408301613d506000840184613c78565b613d5d6000860182613c8f565b50613d6b6020840184613cad565b8583036020870152613d7e838284613d10565b925050508091505092915050565b6000613d988383613d3d565b905092915050565b600082356001604003833603038112613dbc57613dbb613ca8565b5b82810191505092915050565b6000602082019050919050565b6000613de18385613c5d565b935083602084028501613df384613c6e565b8060005b87811015613e37578484038952613e0e8284613da0565b613e188582613d8c565b9450613e2383613dc8565b925060208a01995050600181019050613df7565b50829750879450505050509392505050565b6000608082019050613e5e600083018a6123a5565b8181036020830152613e7181888a613c00565b90508181036040830152613e86818688613450565b90508181036060830152613e9b818486613dd5565b905098975050505050505050565b600080600060608486031215613ec257613ec1611eb0565b5b600084015167ffffffffffffffff811115613ee057613edf611eb5565b5b613eec86828701613210565b9350506020613efd86828701613619565b9250506040613f0e86828701612d64565b9150509250925092565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f2072656769737465724d656d6265720000000000000000000000000000000000602082015250565b6000613f74602f83612185565b9150613f7f82613f18565b604082019050919050565b60006020820190508181036000830152613fa381613f67565b9050919050565b6000613fb582611e72565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613fe757613fe6612f03565b5b60018201905091905056fea26469706673582212207b49f01b15e861982a84410c7784f2d3a7ebd82c8401c037e60c874d2de3ec7e64736f6c63430008180033",
"linkReferences": {},
"deployedLinkReferences": {}
}