dgf-prototype/frontend/contractArtifacts/DAO.json

815 lines
83 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": "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": "0x60806040523480156200001157600080fd5b506040516200439c3803806200439c8339818101604052810190620000379190620003bb565b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe0d695a306040518263ffffffff1660e01b815260040162000154919062000482565b600060405180830381600087803b1580156200016f57600080fd5b505af115801562000184573d6000803e3d6000fd5b50505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe0d695a306040518263ffffffff1660e01b8152600401620001e5919062000482565b600060405180830381600087803b1580156200020057600080fd5b505af115801562000215573d6000803e3d6000fd5b50505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe0d695a306040518263ffffffff1660e01b815260040162000276919062000482565b600060405180830381600087803b1580156200029157600080fd5b505af1158015620002a6573d6000803e3d6000fd5b505050505050506200049f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002e582620002b8565b9050919050565b6000620002f982620002d8565b9050919050565b6200030b81620002ec565b81146200031757600080fd5b50565b6000815190506200032b8162000300565b92915050565b60006200033e82620002d8565b9050919050565b620003508162000331565b81146200035c57600080fd5b50565b600081519050620003708162000345565b92915050565b60006200038382620002d8565b9050919050565b620003958162000376565b8114620003a157600080fd5b50565b600081519050620003b5816200038a565b92915050565b600080600060608486031215620003d757620003d6620002b3565b5b6000620003e7868287016200031a565b9350506020620003fa868287016200035f565b92505060406200040d86828701620003a4565b9150509250925092565b6000819050919050565b6000620004426200043c6200043684620002b8565b62000417565b620002b8565b9050919050565b6000620004568262000421565b9050919050565b60006200046a8262000449565b9050919050565b6200047c816200045d565b82525050565b600060208201905062000499600083018462000471565b92915050565b613eed80620004af6000396000f3fe6080604052600436106101c25760003560e01c806388380274116100f7578063a233627911610095578063dd8aaa4f11610064578063dd8aaa4f1461065e578063e5b4d82714610687578063f8300fca146106b0578063fcb4888e146106ef576101c2565b8063a233627914610578578063da66863a146105bb578063dc00bbfe146105f8578063dd62ed3e14610621576101c2565b80639dc29fac116100d15780639dc29fac146104b95780639fbe7c73146104e25780639fd0987214610512578063a230c5241461053b576101c2565b8063883802741461042a5780638ce516da14610467578063975762b314610490576101c2565b806340c10f19116101645780635ffc70041161013e5780635ffc700414610370578063642b5bfb1461039957806370a08231146103c457806378e21c6e14610401576101c2565b806340c10f19146102e15780635c253c0b1461030a5780635daf08ca14610333576101c2565b806318160ddd116101a057806318160ddd1461025a5780631d0d37c9146102855780631e57e078146102ae5780632d17c062146102b8576101c2565b806311aee380146101c757806317906c2e146101f257806317c182171461021d575b600080fd5b3480156101d357600080fd5b506101dc610718565b6040516101e99190611d99565b60405180910390f35b3480156101fe57600080fd5b5061020761071e565b6040516102149190611d99565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f9190611df4565b6107b6565b6040516102519190611e3c565b60405180910390f35b34801561026657600080fd5b5061026f61085d565b60405161027c9190611d99565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190611f46565b6108f4565b005b6102b6610a5a565b005b3480156102c457600080fd5b506102df60048036038101906102da9190611ff5565b610b60565b005b3480156102ed57600080fd5b5061030860048036038101906103039190612048565b610c43565b005b34801561031657600080fd5b50610331600480360381019061032c91906121c9565b610dbc565b005b34801561033f57600080fd5b5061035a60048036038101906103559190611df4565b610df6565b6040516103679190612221565b60405180910390f35b34801561037c57600080fd5b506103976004803603810190610392919061223c565b610e29565b005b3480156103a557600080fd5b506103ae610ebd565b6040516103bb9190611d99565b60405180910390f35b3480156103d057600080fd5b506103eb60048036038101906103e6919061228f565b610f55565b6040516103f89190611d99565b60405180910390f35b34801561040d57600080fd5b50610428600480360381019061042391906122bc565b610ff9565b005b34801561043657600080fd5b50610451600480360381019061044c919061230f565b611039565b60405161045e9190611e3c565b60405180910390f35b34801561047357600080fd5b5061048e6004803603810190610489919061223c565b611159565b005b34801561049c57600080fd5b506104b760048036038101906104b29190612362565b6112d5565b005b3480156104c557600080fd5b506104e060048036038101906104db9190612048565b611397565b005b6104fc60048036038101906104f79190612441565b611510565b6040516105099190611d99565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190612570565b6115d5565b005b34801561054757600080fd5b50610562600480360381019061055d919061228f565b61167f565b60405161056f9190611e3c565b60405180910390f35b34801561058457600080fd5b5061059f600480360381019061059a9190611df4565b61169f565b6040516105b2979695949392919061284b565b60405180910390f35b3480156105c757600080fd5b506105e260048036038101906105dd91906128cc565b611772565b6040516105ef9190612a06565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a9190611df4565b61181f565b005b34801561062d57600080fd5b5061064860048036038101906106439190612a28565b611859565b6040516106559190611d99565b60405180910390f35b34801561066a57600080fd5b506106856004803603810190610680919061223c565b611900565b005b34801561069357600080fd5b506106ae60048036038101906106a99190612b14565b611994565b005b3480156106bc57600080fd5b506106d760048036038101906106d291906128cc565b611a35565b6040516106e693929190612c12565b60405180910390f35b3480156106fb57600080fd5b506107166004803603810190610711919061228f565b611aea565b005b60045481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317906c2e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b19190612c65565b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317c18217836040518263ffffffff1660e01b81526004016108139190611d99565b6020604051808303816000875af1158015610832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108569190612ca7565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ef9190612c65565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061099d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d390612d46565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1663b4e6a1d58787878787876040518763ffffffff1660e01b8152600401610a1f96959493929190612d93565b600060405180830381600087803b158015610a3957600080fd5b505af1158015610a4d573d6000803e3d6000fd5b5050505050505050505050565b600080600090505b600454811015610b5c5760006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060006001600454610ab59190612e1e565b831015610af757610ac461085d565b610acd83610f55565b34610ad89190612e52565b610ae29190612ec3565b90508084610af09190612ef4565b9350610b06565b8334610b039190612e1e565b90505b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b4c573d6000803e3d6000fd5b5050508080600101915050610a62565b5050565b81610b6a33610f55565b1015610bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba290612f9a565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663217c1961843385856040518563ffffffff1660e01b8152600401610c0c9493929190612fba565b600060405180830381600087803b158015610c2657600080fd5b505af1158015610c3a573d6000803e3d6000fd5b50505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610cec5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2290613071565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610d86929190613091565b600060405180830381600087803b158015610da057600080fd5b505af1158015610db4573d6000803e3d6000fd5b505050505050565b7fbd6277baf8ced6ab6543a1aef164635fc2bde1ba962d39d8a0fd81a5af24972781604051610deb91906130ba565b60405180910390a150565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ffc70048484846040518463ffffffff1660e01b8152600401610e86939291906130dc565b600060405180830381600087803b158015610ea057600080fd5b505af1158015610eb4573d6000803e3d6000fd5b50505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663642b5bfb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f509190612c65565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610fb19190612221565b602060405180830381865afa158015610fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff29190612c65565b9050919050565b7fae8941f3b4d152118273444f36b8b5642e5602102b789968bd4b7cf8b250de8183838360405161102c93929190613113565b60405180910390a1505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1f21c67338686611085338a611859565b61108f9190612ef4565b6040518463ffffffff1660e01b81526004016110ad939291906130dc565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff1663216ed6ad3385856040518463ffffffff1660e01b815260040161111c9392919061314a565b600060405180830381600087803b15801561113657600080fd5b505af115801561114a573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112025750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611241576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611238906131f3565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ce516da8484846040518463ffffffff1660e01b815260040161129e939291906130dc565b600060405180830381600087803b1580156112b857600080fd5b505af11580156112cc573d6000803e3d6000fd5b50505050505050565b816112e08433611859565b10156112f3576112f08333611859565b91505b6112fe833384611900565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663217c1961858585856040518563ffffffff1660e01b815260040161135f9493929190612fba565b600060405180830381600087803b15801561137957600080fd5b505af115801561138d573d6000803e3d6000fd5b5050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114405750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690613285565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac83836040518363ffffffff1660e01b81526004016114da929190613091565b600060405180830381600087803b1580156114f457600080fd5b505af1158015611508573d6000803e3d6000fd5b505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1a38bf934338e8e8e8e8e8e8e8e8e8e6040518d63ffffffff1660e01b81526004016115829b9a999897969594939291906132eb565b60206040518083038185885af11580156115a0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115c59190612c65565b90509a9950505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317e19f2483836000806040518563ffffffff1660e01b815260040161163794939291906133e0565b6020604051808303816000875af1158015611656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167a9190613441565b505050565b60056020528060005260406000206000915054906101000a900460ff1681565b60008060006116ac611ce7565b6116b4611d24565b60006060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a2336279896040518263ffffffff1660e01b81526004016117139190611d99565b600060405180830381865afa158015611730573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906117599190613797565b9650965096509650965096509650919395979092949650565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da66863a84846040518363ffffffff1660e01b81526004016117d1929190613875565b600060405180830381865afa1580156117ee573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061181791906139ac565b905092915050565b7f6e5c598b821d7fa8550e5fea58ab6e27c59e1cbe1df75a8591aa0c453b49e10a8160405161184e9190611d99565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b81526004016118b79291906139f5565b602060405180830381865afa1580156118d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f89190612c65565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd8aaa4f8484846040518463ffffffff1660e01b815260040161195d939291906130dc565b600060405180830381600087803b15801561197757600080fd5b505af115801561198b573d6000803e3d6000fd5b50505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b96129b338888888888886040518863ffffffff1660e01b81526004016119fb9796959493929190613d0e565b600060405180830381600087803b158015611a1557600080fd5b505af1158015611a29573d6000803e3d6000fd5b50505050505050505050565b6060600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f8300fca86866040518363ffffffff1660e01b8152600401611a97929190613875565b600060405180830381865afa158015611ab4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611add9190613d6e565b9250925092509250925092565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b935750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc990613e4f565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ce457806003600060046000815480929190611c3b90613e6f565b91905055815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b6040518060a0016040528060008152602001611d01611d5e565b8152602001611d0e611d5e565b8152602001600081526020016000151581525090565b6040518060c00160405280606081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b6040518060400160405280600290602082028036833780820191505090505090565b6000819050919050565b611d9381611d80565b82525050565b6000602082019050611dae6000830184611d8a565b92915050565b6000604051905090565b600080fd5b600080fd5b611dd181611d80565b8114611ddc57600080fd5b50565b600081359050611dee81611dc8565b92915050565b600060208284031215611e0a57611e09611dbe565b5b6000611e1884828501611ddf565b91505092915050565b60008115159050919050565b611e3681611e21565b82525050565b6000602082019050611e516000830184611e2d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e8282611e57565b9050919050565b611e9281611e77565b8114611e9d57600080fd5b50565b600081359050611eaf81611e89565b92915050565b611ebe81611e21565b8114611ec957600080fd5b50565b600081359050611edb81611eb5565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611f0657611f05611ee1565b5b8235905067ffffffffffffffff811115611f2357611f22611ee6565b5b602083019150836001820283011115611f3f57611f3e611eeb565b5b9250929050565b600080600080600080600060c0888a031215611f6557611f64611dbe565b5b6000611f738a828b01611ea0565b9750506020611f848a828b01611ecc565b9650506040611f958a828b01611ecc565b9550506060611fa68a828b01611ddf565b9450506080611fb78a828b01611ddf565b93505060a088013567ffffffffffffffff811115611fd857611fd7611dc3565b5b611fe48a828b01611ef0565b925092505092959891949750929550565b60008060006060848603121561200e5761200d611dbe565b5b600061201c86828701611ddf565b935050602061202d86828701611ddf565b925050604061203e86828701611ecc565b9150509250925092565b6000806040838503121561205f5761205e611dbe565b5b600061206d85828601611ea0565b925050602061207e85828601611ddf565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120d68261208d565b810181811067ffffffffffffffff821117156120f5576120f461209e565b5b80604052505050565b6000612108611db4565b905061211482826120cd565b919050565b600067ffffffffffffffff8211156121345761213361209e565b5b61213d8261208d565b9050602081019050919050565b82818337600083830152505050565b600061216c61216784612119565b6120fe565b90508281526020810184848401111561218857612187612088565b5b61219384828561214a565b509392505050565b600082601f8301126121b0576121af611ee1565b5b81356121c0848260208601612159565b91505092915050565b6000602082840312156121df576121de611dbe565b5b600082013567ffffffffffffffff8111156121fd576121fc611dc3565b5b6122098482850161219b565b91505092915050565b61221b81611e77565b82525050565b60006020820190506122366000830184612212565b92915050565b60008060006060848603121561225557612254611dbe565b5b600061226386828701611ea0565b935050602061227486828701611ea0565b925050604061228586828701611ddf565b9150509250925092565b6000602082840312156122a5576122a4611dbe565b5b60006122b384828501611ea0565b91505092915050565b6000806000606084860312156122d5576122d4611dbe565b5b60006122e386828701611ddf565b93505060206122f486828701611ecc565b925050604061230586828701611ecc565b9150509250925092565b60008060006060848603121561232857612327611dbe565b5b600061233686828701611ea0565b935050602061234786828701611ddf565b925050604061235886828701611ddf565b9150509250925092565b6000806000806080858703121561237c5761237b611dbe565b5b600061238a87828801611ddf565b945050602061239b87828801611ea0565b93505060406123ac87828801611ddf565b92505060606123bd87828801611ecc565b91505092959194509250565b60008083601f8401126123df576123de611ee1565b5b8235905067ffffffffffffffff8111156123fc576123fb611ee6565b5b60208301915083600182028301111561241857612417611eeb565b5b9250929050565b60008190508260206002028201111561243b5761243a611eeb565b5b92915050565b6000806000806000806000806000806101408b8d03121561246557612464611dbe565b5b60008b013567ffffffffffffffff81111561248357612482611dc3565b5b61248f8d828e016123c9565b9a509a505060206124a28d828e01611ddf565b98505060406124b38d828e0161241f565b97505060806124c48d828e0161241f565b96505060c06124d58d828e01611ddf565b95505060e06124e68d828e01611ecc565b9450506101006124f88d828e01611ecc565b9350506101208b013567ffffffffffffffff81111561251a57612519611dc3565b5b6125268d828e01611ef0565b92509250509295989b9194979a5092959850565b6000819050919050565b61254d8161253a565b811461255857600080fd5b50565b60008135905061256a81612544565b92915050565b6000806040838503121561258757612586611dbe565b5b600083013567ffffffffffffffff8111156125a5576125a4611dc3565b5b6125b18582860161219b565b92505060206125c28582860161255b565b9150509250929050565b6125d581611d80565b82525050565b600060029050919050565b600081905092915050565b6000819050919050565b600061260783836125cc565b60208301905092915050565b6000602082019050919050565b612629816125db565b61263381846125e6565b925061263e826125f1565b8060005b8381101561266f57815161265687826125fb565b965061266183612613565b925050600181019050612642565b505050505050565b61268081611e21565b82525050565b60e08201600082015161269c60008501826125cc565b5060208201516126af6020850182612620565b5060408201516126c26060850182612620565b5060608201516126d560a08501826125cc565b5060808201516126e860c0850182612677565b50505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561272857808201518184015260208101905061270d565b60008484015250505050565b600061273f826126ee565b61274981856126f9565b935061275981856020860161270a565b6127628161208d565b840191505092915050565b600060c083016000830151848203600086015261278a8282612734565b915050602083015161279f60208601826125cc565b5060408301516127b260408601826125cc565b5060608301516127c560608601826125cc565b5060808301516127d86080860182612677565b5060a08301516127eb60a0860182612677565b508091505092915050565b600081519050919050565b600082825260208201905092915050565b600061281d826127f6565b6128278185612801565b935061283781856020860161270a565b6128408161208d565b840191505092915050565b60006101a082019050612861600083018a611d8a565b61286e6020830189612212565b61287b6040830188611d8a565b6128886060830187612686565b81810361014083015261289b818661276d565b90506128ab610160830185611e2d565b8181036101808301526128be8184612812565b905098975050505050505050565b600080602083850312156128e3576128e2611dbe565b5b600083013567ffffffffffffffff81111561290157612900611dc3565b5b61290d858286016123c9565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61294e81611e77565b82525050565b60408201600082015161296a60008501826125cc565b50602082015161297d6020850182612945565b50505050565b600061298f8383612954565b60408301905092915050565b6000602082019050919050565b60006129b382612919565b6129bd8185612924565b93506129c883612935565b8060005b838110156129f95781516129e08882612983565b97506129eb8361299b565b9250506001810190506129cc565b5085935050505092915050565b60006020820190508181036000830152612a2081846129a8565b905092915050565b60008060408385031215612a3f57612a3e611dbe565b5b6000612a4d85828601611ea0565b9250506020612a5e85828601611ea0565b9150509250929050565b60008083601f840112612a7e57612a7d611ee1565b5b8235905067ffffffffffffffff811115612a9b57612a9a611ee6565b5b602083019150836040820283011115612ab757612ab6611eeb565b5b9250929050565b60008083601f840112612ad457612ad3611ee1565b5b8235905067ffffffffffffffff811115612af157612af0611ee6565b5b602083019150836020820283011115612b0d57612b0c611eeb565b5b9250929050565b60008060008060008060608789031215612b3157612b30611dbe565b5b600087013567ffffffffffffffff811115612b4f57612b4e611dc3565b5b612b5b89828a01612a68565b9650965050602087013567ffffffffffffffff811115612b7e57612b7d611dc3565b5b612b8a89828a016123c9565b9450945050604087013567ffffffffffffffff811115612bad57612bac611dc3565b5b612bb989828a01612abe565b92509250509295509295509295565b600082825260208201905092915050565b6000612be4826126ee565b612bee8185612bc8565b9350612bfe81856020860161270a565b612c078161208d565b840191505092915050565b60006060820190508181036000830152612c2c8186612bd9565b9050612c3b6020830185612212565b612c486040830184611d8a565b949350505050565b600081519050612c5f81611dc8565b92915050565b600060208284031215612c7b57612c7a611dbe565b5b6000612c8984828501612c50565b91505092915050565b600081519050612ca181611eb5565b92915050565b600060208284031215612cbd57612cbc611dbe565b5b6000612ccb84828501612c92565b91505092915050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f206f6e56616c6964617465000000000000000000000000000000000000000000602082015250565b6000612d30602b83612bc8565b9150612d3b82612cd4565b604082019050919050565b60006020820190508181036000830152612d5f81612d23565b9050919050565b6000612d728385612801565b9350612d7f83858461214a565b612d888361208d565b840190509392505050565b600060a082019050612da86000830189611e2d565b612db56020830188611e2d565b612dc26040830187611d8a565b612dcf6060830186611d8a565b8181036080830152612de2818486612d66565b9050979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e2982611d80565b9150612e3483611d80565b9250828203905081811115612e4c57612e4b612def565b5b92915050565b6000612e5d82611d80565b9150612e6883611d80565b9250828202612e7681611d80565b91508282048414831517612e8d57612e8c612def565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ece82611d80565b9150612ed983611d80565b925082612ee957612ee8612e94565b5b828204905092915050565b6000612eff82611d80565b9150612f0a83611d80565b9250828201905080821115612f2257612f21612def565b5b92915050565b7f496e73756666696369656e74205245502062616c616e636520746f20636f766560008201527f72207374616b6500000000000000000000000000000000000000000000000000602082015250565b6000612f84602783612bc8565b9150612f8f82612f28565b604082019050919050565b60006020820190508181036000830152612fb381612f77565b9050919050565b6000608082019050612fcf6000830187611d8a565b612fdc6020830186612212565b612fe96040830185611d8a565b612ff66060830184611e2d565b95945050505050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f206d696e74000000000000000000000000000000000000000000000000000000602082015250565b600061305b602583612bc8565b915061306682612fff565b604082019050919050565b6000602082019050818103600083015261308a8161304e565b9050919050565b60006040820190506130a66000830185612212565b6130b36020830184611d8a565b9392505050565b600060208201905081810360008301526130d48184612bd9565b905092915050565b60006060820190506130f16000830186612212565b6130fe6020830185612212565b61310b6040830184611d8a565b949350505050565b60006060820190506131286000830186611d8a565b6131356020830185611e2d565b6131426040830184611e2d565b949350505050565b600060608201905061315f6000830186612212565b61316c6020830185611d8a565b6131796040830184611d8a565b949350505050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f2075706461746500000000000000000000000000000000000000000000000000602082015250565b60006131dd602783612bc8565b91506131e882613181565b604082019050919050565b6000602082019050818103600083015261320c816131d0565b9050919050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f206275726e000000000000000000000000000000000000000000000000000000602082015250565b600061326f602583612bc8565b915061327a82613213565b604082019050919050565b6000602082019050818103600083015261329e81613262565b9050919050565b60006132b18385612bc8565b93506132be83858461214a565b6132c78361208d565b840190509392505050565b82818337505050565b6132e7604083836132d2565b5050565b600061016082019050613301600083018e612212565b8181036020830152613314818c8e6132a5565b9050613323604083018b611d8a565b613330606083018a6132db565b61333d60a08301896132db565b61334a60e0830188611d8a565b613358610100830187611e2d565b613366610120830186611e2d565b81810361014083015261337a818486612d66565b90509c9b505050505050505050505050565b6133958161253a565b82525050565b6000819050919050565b6000819050919050565b60006133ca6133c56133c08461339b565b6133a5565b611d80565b9050919050565b6133da816133af565b82525050565b600060808201905081810360008301526133fa8187612bd9565b9050613409602083018661338c565b6134166040830185611e2d565b61342360608301846133d1565b95945050505050565b60008151905061343b81612544565b92915050565b60006020828403121561345757613456611dbe565b5b60006134658482850161342c565b91505092915050565b60008151905061347d81611e89565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff8211156134a8576134a761209e565b5b602082029050919050565b60006134c66134c18461348d565b6120fe565b905080602084028301858111156134e0576134df611eeb565b5b835b8181101561350957806134f58882612c50565b8452602084019350506020810190506134e2565b5050509392505050565b600082601f83011261352857613527611ee1565b5b60026135358482856134b3565b91505092915050565b600060e0828403121561355457613553613483565b5b61355e60a06120fe565b9050600061356e84828501612c50565b600083015250602061358284828501613513565b602083015250606061359684828501613513565b60408301525060a06135aa84828501612c50565b60608301525060c06135be84828501612c92565b60808301525092915050565b60006135dd6135d884612119565b6120fe565b9050828152602081018484840111156135f9576135f8612088565b5b61360484828561270a565b509392505050565b600082601f83011261362157613620611ee1565b5b81516136318482602086016135ca565b91505092915050565b600060c082840312156136505761364f613483565b5b61365a60c06120fe565b9050600082015167ffffffffffffffff81111561367a57613679613488565b5b6136868482850161360c565b600083015250602061369a84828501612c50565b60208301525060406136ae84828501612c50565b60408301525060606136c284828501612c50565b60608301525060806136d684828501612c92565b60808301525060a06136ea84828501612c92565b60a08301525092915050565b600067ffffffffffffffff8211156137115761371061209e565b5b61371a8261208d565b9050602081019050919050565b600061373a613735846136f6565b6120fe565b90508281526020810184848401111561375657613755612088565b5b61376184828561270a565b509392505050565b600082601f83011261377e5761377d611ee1565b5b815161378e848260208601613727565b91505092915050565b60008060008060008060006101a0888a0312156137b7576137b6611dbe565b5b60006137c58a828b01612c50565b97505060206137d68a828b0161346e565b96505060406137e78a828b01612c50565b95505060606137f88a828b0161353e565b94505061014088015167ffffffffffffffff81111561381a57613819611dc3565b5b6138268a828b0161363a565b9350506101606138388a828b01612c92565b92505061018088015167ffffffffffffffff81111561385a57613859611dc3565b5b6138668a828b01613769565b91505092959891949750929550565b600060208201905081810360008301526138908184866132a5565b90509392505050565b600067ffffffffffffffff8211156138b4576138b361209e565b5b602082029050602081019050919050565b6000604082840312156138db576138da613483565b5b6138e560406120fe565b905060006138f584828501612c50565b60008301525060206139098482850161346e565b60208301525092915050565b600061392861392384613899565b6120fe565b9050808382526020820190506040840283018581111561394b5761394a611eeb565b5b835b81811015613974578061396088826138c5565b84526020840193505060408101905061394d565b5050509392505050565b600082601f83011261399357613992611ee1565b5b81516139a3848260208601613915565b91505092915050565b6000602082840312156139c2576139c1611dbe565b5b600082015167ffffffffffffffff8111156139e0576139df611dc3565b5b6139ec8482850161397e565b91505092915050565b6000604082019050613a0a6000830185612212565b613a176020830184612212565b9392505050565b6000819050919050565b6000613a376020840184611ddf565b905092915050565b6000613a4e6020840184611ea0565b905092915050565b60408201613a676000830183613a28565b613a7460008501826125cc565b50613a826020830183613a3f565b613a8f6020850182612945565b50505050565b6000613aa18383613a56565b60408301905092915050565b600082905092915050565b6000604082019050919050565b6000613ad18385612924565b9350613adc82613a1e565b8060005b85811015613b1557613af28284613aad565b613afc8882613a95565b9750613b0783613ab8565b925050600181019050613ae0565b5085925050509392505050565b600082825260208201905092915050565b6000819050919050565b6000613b4c602084018461255b565b905092915050565b613b5d8161253a565b82525050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613b8f57613b8e613b6d565b5b83810192508235915060208301925067ffffffffffffffff821115613bb757613bb6613b63565b5b600182023603831315613bcd57613bcc613b68565b5b509250929050565b6000613be183856126f9565b9350613bee83858461214a565b613bf78361208d565b840190509392505050565b600060408301613c156000840184613b3d565b613c226000860182613b54565b50613c306020840184613b72565b8583036020870152613c43838284613bd5565b925050508091505092915050565b6000613c5d8383613c02565b905092915050565b600082356001604003833603038112613c8157613c80613b6d565b5b82810191505092915050565b6000602082019050919050565b6000613ca68385613b22565b935083602084028501613cb884613b33565b8060005b87811015613cfc578484038952613cd38284613c65565b613cdd8582613c51565b9450613ce883613c8d565b925060208a01995050600181019050613cbc565b50829750879450505050509392505050565b6000608082019050613d23600083018a612212565b8181036020830152613d3681888a613ac5565b90508181036040830152613d4b8186886132a5565b90508181036060830152613d60818486613c9a565b905098975050505050505050565b600080600060608486031215613d8757613d86611dbe565b5b600084015167ffffffffffffffff811115613da557613da4611dc3565b5b613db18682870161360c565b9350506020613dc28682870161346e565b9250506040613dd386828701612c50565b9150509250925092565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f2072656769737465724d656d6265720000000000000000000000000000000000602082015250565b6000613e39602f83612bc8565b9150613e4482613ddd565b604082019050919050565b60006020820190508181036000830152613e6881613e2c565b9050919050565b6000613e7a82611d80565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613eac57613eab612def565b5b60018201905091905056fea2646970667358221220c79bd5679bb63264b2192b09b1c634fa20c9e328a470579d081f135e0332cd4164736f6c63430008180033",
"deployedBytecode": "0x6080604052600436106101c25760003560e01c806388380274116100f7578063a233627911610095578063dd8aaa4f11610064578063dd8aaa4f1461065e578063e5b4d82714610687578063f8300fca146106b0578063fcb4888e146106ef576101c2565b8063a233627914610578578063da66863a146105bb578063dc00bbfe146105f8578063dd62ed3e14610621576101c2565b80639dc29fac116100d15780639dc29fac146104b95780639fbe7c73146104e25780639fd0987214610512578063a230c5241461053b576101c2565b8063883802741461042a5780638ce516da14610467578063975762b314610490576101c2565b806340c10f19116101645780635ffc70041161013e5780635ffc700414610370578063642b5bfb1461039957806370a08231146103c457806378e21c6e14610401576101c2565b806340c10f19146102e15780635c253c0b1461030a5780635daf08ca14610333576101c2565b806318160ddd116101a057806318160ddd1461025a5780631d0d37c9146102855780631e57e078146102ae5780632d17c062146102b8576101c2565b806311aee380146101c757806317906c2e146101f257806317c182171461021d575b600080fd5b3480156101d357600080fd5b506101dc610718565b6040516101e99190611d99565b60405180910390f35b3480156101fe57600080fd5b5061020761071e565b6040516102149190611d99565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f9190611df4565b6107b6565b6040516102519190611e3c565b60405180910390f35b34801561026657600080fd5b5061026f61085d565b60405161027c9190611d99565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190611f46565b6108f4565b005b6102b6610a5a565b005b3480156102c457600080fd5b506102df60048036038101906102da9190611ff5565b610b60565b005b3480156102ed57600080fd5b5061030860048036038101906103039190612048565b610c43565b005b34801561031657600080fd5b50610331600480360381019061032c91906121c9565b610dbc565b005b34801561033f57600080fd5b5061035a60048036038101906103559190611df4565b610df6565b6040516103679190612221565b60405180910390f35b34801561037c57600080fd5b506103976004803603810190610392919061223c565b610e29565b005b3480156103a557600080fd5b506103ae610ebd565b6040516103bb9190611d99565b60405180910390f35b3480156103d057600080fd5b506103eb60048036038101906103e6919061228f565b610f55565b6040516103f89190611d99565b60405180910390f35b34801561040d57600080fd5b50610428600480360381019061042391906122bc565b610ff9565b005b34801561043657600080fd5b50610451600480360381019061044c919061230f565b611039565b60405161045e9190611e3c565b60405180910390f35b34801561047357600080fd5b5061048e6004803603810190610489919061223c565b611159565b005b34801561049c57600080fd5b506104b760048036038101906104b29190612362565b6112d5565b005b3480156104c557600080fd5b506104e060048036038101906104db9190612048565b611397565b005b6104fc60048036038101906104f79190612441565b611510565b6040516105099190611d99565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190612570565b6115d5565b005b34801561054757600080fd5b50610562600480360381019061055d919061228f565b61167f565b60405161056f9190611e3c565b60405180910390f35b34801561058457600080fd5b5061059f600480360381019061059a9190611df4565b61169f565b6040516105b2979695949392919061284b565b60405180910390f35b3480156105c757600080fd5b506105e260048036038101906105dd91906128cc565b611772565b6040516105ef9190612a06565b60405180910390f35b34801561060457600080fd5b5061061f600480360381019061061a9190611df4565b61181f565b005b34801561062d57600080fd5b5061064860048036038101906106439190612a28565b611859565b6040516106559190611d99565b60405180910390f35b34801561066a57600080fd5b506106856004803603810190610680919061223c565b611900565b005b34801561069357600080fd5b506106ae60048036038101906106a99190612b14565b611994565b005b3480156106bc57600080fd5b506106d760048036038101906106d291906128cc565b611a35565b6040516106e693929190612c12565b60405180910390f35b3480156106fb57600080fd5b506107166004803603810190610711919061228f565b611aea565b005b60045481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317906c2e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b19190612c65565b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317c18217836040518263ffffffff1660e01b81526004016108139190611d99565b6020604051808303816000875af1158015610832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108569190612ca7565b9050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ef9190612c65565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061099d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6109dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d390612d46565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff1663b4e6a1d58787878787876040518763ffffffff1660e01b8152600401610a1f96959493929190612d93565b600060405180830381600087803b158015610a3957600080fd5b505af1158015610a4d573d6000803e3d6000fd5b5050505050505050505050565b600080600090505b600454811015610b5c5760006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060006001600454610ab59190612e1e565b831015610af757610ac461085d565b610acd83610f55565b34610ad89190612e52565b610ae29190612ec3565b90508084610af09190612ef4565b9350610b06565b8334610b039190612e1e565b90505b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610b4c573d6000803e3d6000fd5b5050508080600101915050610a62565b5050565b81610b6a33610f55565b1015610bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba290612f9a565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663217c1961843385856040518563ffffffff1660e01b8152600401610c0c9493929190612fba565b600060405180830381600087803b158015610c2657600080fd5b505af1158015610c3a573d6000803e3d6000fd5b50505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610cec5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2290613071565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610d86929190613091565b600060405180830381600087803b158015610da057600080fd5b505af1158015610db4573d6000803e3d6000fd5b505050505050565b7fbd6277baf8ced6ab6543a1aef164635fc2bde1ba962d39d8a0fd81a5af24972781604051610deb91906130ba565b60405180910390a150565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635ffc70048484846040518463ffffffff1660e01b8152600401610e86939291906130dc565b600060405180830381600087803b158015610ea057600080fd5b505af1158015610eb4573d6000803e3d6000fd5b50505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663642b5bfb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f509190612c65565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401610fb19190612221565b602060405180830381865afa158015610fce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff29190612c65565b9050919050565b7fae8941f3b4d152118273444f36b8b5642e5602102b789968bd4b7cf8b250de8183838360405161102c93929190613113565b60405180910390a1505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1f21c67338686611085338a611859565b61108f9190612ef4565b6040518463ffffffff1660e01b81526004016110ad939291906130dc565b600060405180830381600087803b1580156110c757600080fd5b505af11580156110db573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff1663216ed6ad3385856040518463ffffffff1660e01b815260040161111c9392919061314a565b600060405180830381600087803b15801561113657600080fd5b505af115801561114a573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112025750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611241576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611238906131f3565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ce516da8484846040518463ffffffff1660e01b815260040161129e939291906130dc565b600060405180830381600087803b1580156112b857600080fd5b505af11580156112cc573d6000803e3d6000fd5b50505050505050565b816112e08433611859565b10156112f3576112f08333611859565b91505b6112fe833384611900565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663217c1961858585856040518563ffffffff1660e01b815260040161135f9493929190612fba565b600060405180830381600087803b15801561137957600080fd5b505af115801561138d573d6000803e3d6000fd5b5050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114405750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690613285565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac83836040518363ffffffff1660e01b81526004016114da929190613091565b600060405180830381600087803b1580156114f457600080fd5b505af1158015611508573d6000803e3d6000fd5b505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1a38bf934338e8e8e8e8e8e8e8e8e8e6040518d63ffffffff1660e01b81526004016115829b9a999897969594939291906132eb565b60206040518083038185885af11580156115a0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115c59190612c65565b90509a9950505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166317e19f2483836000806040518563ffffffff1660e01b815260040161163794939291906133e0565b6020604051808303816000875af1158015611656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167a9190613441565b505050565b60056020528060005260406000206000915054906101000a900460ff1681565b60008060006116ac611ce7565b6116b4611d24565b60006060600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a2336279896040518263ffffffff1660e01b81526004016117139190611d99565b600060405180830381865afa158015611730573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906117599190613797565b9650965096509650965096509650919395979092949650565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da66863a84846040518363ffffffff1660e01b81526004016117d1929190613875565b600060405180830381865afa1580156117ee573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061181791906139ac565b905092915050565b7f6e5c598b821d7fa8550e5fea58ab6e27c59e1cbe1df75a8591aa0c453b49e10a8160405161184e9190611d99565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b81526004016118b79291906139f5565b602060405180830381865afa1580156118d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f89190612c65565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd8aaa4f8484846040518463ffffffff1660e01b815260040161195d939291906130dc565b600060405180830381600087803b15801561197757600080fd5b505af115801561198b573d6000803e3d6000fd5b50505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638b96129b338888888888886040518863ffffffff1660e01b81526004016119fb9796959493929190613d0e565b600060405180830381600087803b158015611a1557600080fd5b505af1158015611a29573d6000803e3d6000fd5b50505050505050505050565b6060600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f8300fca86866040518363ffffffff1660e01b8152600401611a97929190613875565b600060405180830381865afa158015611ab4573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611add9190613d6e565b9250925092509250925092565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b935750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc990613e4f565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ce457806003600060046000815480929190611c3b90613e6f565b91905055815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b50565b6040518060a0016040528060008152602001611d01611d5e565b8152602001611d0e611d5e565b8152602001600081526020016000151581525090565b6040518060c00160405280606081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b6040518060400160405280600290602082028036833780820191505090505090565b6000819050919050565b611d9381611d80565b82525050565b6000602082019050611dae6000830184611d8a565b92915050565b6000604051905090565b600080fd5b600080fd5b611dd181611d80565b8114611ddc57600080fd5b50565b600081359050611dee81611dc8565b92915050565b600060208284031215611e0a57611e09611dbe565b5b6000611e1884828501611ddf565b91505092915050565b60008115159050919050565b611e3681611e21565b82525050565b6000602082019050611e516000830184611e2d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e8282611e57565b9050919050565b611e9281611e77565b8114611e9d57600080fd5b50565b600081359050611eaf81611e89565b92915050565b611ebe81611e21565b8114611ec957600080fd5b50565b600081359050611edb81611eb5565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611f0657611f05611ee1565b5b8235905067ffffffffffffffff811115611f2357611f22611ee6565b5b602083019150836001820283011115611f3f57611f3e611eeb565b5b9250929050565b600080600080600080600060c0888a031215611f6557611f64611dbe565b5b6000611f738a828b01611ea0565b9750506020611f848a828b01611ecc565b9650506040611f958a828b01611ecc565b9550506060611fa68a828b01611ddf565b9450506080611fb78a828b01611ddf565b93505060a088013567ffffffffffffffff811115611fd857611fd7611dc3565b5b611fe48a828b01611ef0565b925092505092959891949750929550565b60008060006060848603121561200e5761200d611dbe565b5b600061201c86828701611ddf565b935050602061202d86828701611ddf565b925050604061203e86828701611ecc565b9150509250925092565b6000806040838503121561205f5761205e611dbe565b5b600061206d85828601611ea0565b925050602061207e85828601611ddf565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120d68261208d565b810181811067ffffffffffffffff821117156120f5576120f461209e565b5b80604052505050565b6000612108611db4565b905061211482826120cd565b919050565b600067ffffffffffffffff8211156121345761213361209e565b5b61213d8261208d565b9050602081019050919050565b82818337600083830152505050565b600061216c61216784612119565b6120fe565b90508281526020810184848401111561218857612187612088565b5b61219384828561214a565b509392505050565b600082601f8301126121b0576121af611ee1565b5b81356121c0848260208601612159565b91505092915050565b6000602082840312156121df576121de611dbe565b5b600082013567ffffffffffffffff8111156121fd576121fc611dc3565b5b6122098482850161219b565b91505092915050565b61221b81611e77565b82525050565b60006020820190506122366000830184612212565b92915050565b60008060006060848603121561225557612254611dbe565b5b600061226386828701611ea0565b935050602061227486828701611ea0565b925050604061228586828701611ddf565b9150509250925092565b6000602082840312156122a5576122a4611dbe565b5b60006122b384828501611ea0565b91505092915050565b6000806000606084860312156122d5576122d4611dbe565b5b60006122e386828701611ddf565b93505060206122f486828701611ecc565b925050604061230586828701611ecc565b9150509250925092565b60008060006060848603121561232857612327611dbe565b5b600061233686828701611ea0565b935050602061234786828701611ddf565b925050604061235886828701611ddf565b9150509250925092565b6000806000806080858703121561237c5761237b611dbe565b5b600061238a87828801611ddf565b945050602061239b87828801611ea0565b93505060406123ac87828801611ddf565b92505060606123bd87828801611ecc565b91505092959194509250565b60008083601f8401126123df576123de611ee1565b5b8235905067ffffffffffffffff8111156123fc576123fb611ee6565b5b60208301915083600182028301111561241857612417611eeb565b5b9250929050565b60008190508260206002028201111561243b5761243a611eeb565b5b92915050565b6000806000806000806000806000806101408b8d03121561246557612464611dbe565b5b60008b013567ffffffffffffffff81111561248357612482611dc3565b5b61248f8d828e016123c9565b9a509a505060206124a28d828e01611ddf565b98505060406124b38d828e0161241f565b97505060806124c48d828e0161241f565b96505060c06124d58d828e01611ddf565b95505060e06124e68d828e01611ecc565b9450506101006124f88d828e01611ecc565b9350506101208b013567ffffffffffffffff81111561251a57612519611dc3565b5b6125268d828e01611ef0565b92509250509295989b9194979a5092959850565b6000819050919050565b61254d8161253a565b811461255857600080fd5b50565b60008135905061256a81612544565b92915050565b6000806040838503121561258757612586611dbe565b5b600083013567ffffffffffffffff8111156125a5576125a4611dc3565b5b6125b18582860161219b565b92505060206125c28582860161255b565b9150509250929050565b6125d581611d80565b82525050565b600060029050919050565b600081905092915050565b6000819050919050565b600061260783836125cc565b60208301905092915050565b6000602082019050919050565b612629816125db565b61263381846125e6565b925061263e826125f1565b8060005b8381101561266f57815161265687826125fb565b965061266183612613565b925050600181019050612642565b505050505050565b61268081611e21565b82525050565b60e08201600082015161269c60008501826125cc565b5060208201516126af6020850182612620565b5060408201516126c26060850182612620565b5060608201516126d560a08501826125cc565b5060808201516126e860c0850182612677565b50505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561272857808201518184015260208101905061270d565b60008484015250505050565b600061273f826126ee565b61274981856126f9565b935061275981856020860161270a565b6127628161208d565b840191505092915050565b600060c083016000830151848203600086015261278a8282612734565b915050602083015161279f60208601826125cc565b5060408301516127b260408601826125cc565b5060608301516127c560608601826125cc565b5060808301516127d86080860182612677565b5060a08301516127eb60a0860182612677565b508091505092915050565b600081519050919050565b600082825260208201905092915050565b600061281d826127f6565b6128278185612801565b935061283781856020860161270a565b6128408161208d565b840191505092915050565b60006101a082019050612861600083018a611d8a565b61286e6020830189612212565b61287b6040830188611d8a565b6128886060830187612686565b81810361014083015261289b818661276d565b90506128ab610160830185611e2d565b8181036101808301526128be8184612812565b905098975050505050505050565b600080602083850312156128e3576128e2611dbe565b5b600083013567ffffffffffffffff81111561290157612900611dc3565b5b61290d858286016123c9565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61294e81611e77565b82525050565b60408201600082015161296a60008501826125cc565b50602082015161297d6020850182612945565b50505050565b600061298f8383612954565b60408301905092915050565b6000602082019050919050565b60006129b382612919565b6129bd8185612924565b93506129c883612935565b8060005b838110156129f95781516129e08882612983565b97506129eb8361299b565b9250506001810190506129cc565b5085935050505092915050565b60006020820190508181036000830152612a2081846129a8565b905092915050565b60008060408385031215612a3f57612a3e611dbe565b5b6000612a4d85828601611ea0565b9250506020612a5e85828601611ea0565b9150509250929050565b60008083601f840112612a7e57612a7d611ee1565b5b8235905067ffffffffffffffff811115612a9b57612a9a611ee6565b5b602083019150836040820283011115612ab757612ab6611eeb565b5b9250929050565b60008083601f840112612ad457612ad3611ee1565b5b8235905067ffffffffffffffff811115612af157612af0611ee6565b5b602083019150836020820283011115612b0d57612b0c611eeb565b5b9250929050565b60008060008060008060608789031215612b3157612b30611dbe565b5b600087013567ffffffffffffffff811115612b4f57612b4e611dc3565b5b612b5b89828a01612a68565b9650965050602087013567ffffffffffffffff811115612b7e57612b7d611dc3565b5b612b8a89828a016123c9565b9450945050604087013567ffffffffffffffff811115612bad57612bac611dc3565b5b612bb989828a01612abe565b92509250509295509295509295565b600082825260208201905092915050565b6000612be4826126ee565b612bee8185612bc8565b9350612bfe81856020860161270a565b612c078161208d565b840191505092915050565b60006060820190508181036000830152612c2c8186612bd9565b9050612c3b6020830185612212565b612c486040830184611d8a565b949350505050565b600081519050612c5f81611dc8565b92915050565b600060208284031215612c7b57612c7a611dbe565b5b6000612c8984828501612c50565b91505092915050565b600081519050612ca181611eb5565b92915050565b600060208284031215612cbd57612cbc611dbe565b5b6000612ccb84828501612c92565b91505092915050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f206f6e56616c6964617465000000000000000000000000000000000000000000602082015250565b6000612d30602b83612bc8565b9150612d3b82612cd4565b604082019050919050565b60006020820190508181036000830152612d5f81612d23565b9050919050565b6000612d728385612801565b9350612d7f83858461214a565b612d888361208d565b840190509392505050565b600060a082019050612da86000830189611e2d565b612db56020830188611e2d565b612dc26040830187611d8a565b612dcf6060830186611d8a565b8181036080830152612de2818486612d66565b9050979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e2982611d80565b9150612e3483611d80565b9250828203905081811115612e4c57612e4b612def565b5b92915050565b6000612e5d82611d80565b9150612e6883611d80565b9250828202612e7681611d80565b91508282048414831517612e8d57612e8c612def565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ece82611d80565b9150612ed983611d80565b925082612ee957612ee8612e94565b5b828204905092915050565b6000612eff82611d80565b9150612f0a83611d80565b9250828201905080821115612f2257612f21612def565b5b92915050565b7f496e73756666696369656e74205245502062616c616e636520746f20636f766560008201527f72207374616b6500000000000000000000000000000000000000000000000000602082015250565b6000612f84602783612bc8565b9150612f8f82612f28565b604082019050919050565b60006020820190508181036000830152612fb381612f77565b9050919050565b6000608082019050612fcf6000830187611d8a565b612fdc6020830186612212565b612fe96040830185611d8a565b612ff66060830184611e2d565b95945050505050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f206d696e74000000000000000000000000000000000000000000000000000000602082015250565b600061305b602583612bc8565b915061306682612fff565b604082019050919050565b6000602082019050818103600083015261308a8161304e565b9050919050565b60006040820190506130a66000830185612212565b6130b36020830184611d8a565b9392505050565b600060208201905081810360008301526130d48184612bd9565b905092915050565b60006060820190506130f16000830186612212565b6130fe6020830185612212565b61310b6040830184611d8a565b949350505050565b60006060820190506131286000830186611d8a565b6131356020830185611e2d565b6131426040830184611e2d565b949350505050565b600060608201905061315f6000830186612212565b61316c6020830185611d8a565b6131796040830184611d8a565b949350505050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f2075706461746500000000000000000000000000000000000000000000000000602082015250565b60006131dd602783612bc8565b91506131e882613181565b604082019050919050565b6000602082019050818103600083015261320c816131d0565b9050919050565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f206275726e000000000000000000000000000000000000000000000000000000602082015250565b600061326f602583612bc8565b915061327a82613213565b604082019050919050565b6000602082019050818103600083015261329e81613262565b9050919050565b60006132b18385612bc8565b93506132be83858461214a565b6132c78361208d565b840190509392505050565b82818337505050565b6132e7604083836132d2565b5050565b600061016082019050613301600083018e612212565b8181036020830152613314818c8e6132a5565b9050613323604083018b611d8a565b613330606083018a6132db565b61333d60a08301896132db565b61334a60e0830188611d8a565b613358610100830187611e2d565b613366610120830186611e2d565b81810361014083015261337a818486612d66565b90509c9b505050505050505050505050565b6133958161253a565b82525050565b6000819050919050565b6000819050919050565b60006133ca6133c56133c08461339b565b6133a5565b611d80565b9050919050565b6133da816133af565b82525050565b600060808201905081810360008301526133fa8187612bd9565b9050613409602083018661338c565b6134166040830185611e2d565b61342360608301846133d1565b95945050505050565b60008151905061343b81612544565b92915050565b60006020828403121561345757613456611dbe565b5b60006134658482850161342c565b91505092915050565b60008151905061347d81611e89565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff8211156134a8576134a761209e565b5b602082029050919050565b60006134c66134c18461348d565b6120fe565b905080602084028301858111156134e0576134df611eeb565b5b835b8181101561350957806134f58882612c50565b8452602084019350506020810190506134e2565b5050509392505050565b600082601f83011261352857613527611ee1565b5b60026135358482856134b3565b91505092915050565b600060e0828403121561355457613553613483565b5b61355e60a06120fe565b9050600061356e84828501612c50565b600083015250602061358284828501613513565b602083015250606061359684828501613513565b60408301525060a06135aa84828501612c50565b60608301525060c06135be84828501612c92565b60808301525092915050565b60006135dd6135d884612119565b6120fe565b9050828152602081018484840111156135f9576135f8612088565b5b61360484828561270a565b509392505050565b600082601f83011261362157613620611ee1565b5b81516136318482602086016135ca565b91505092915050565b600060c082840312156136505761364f613483565b5b61365a60c06120fe565b9050600082015167ffffffffffffffff81111561367a57613679613488565b5b6136868482850161360c565b600083015250602061369a84828501612c50565b60208301525060406136ae84828501612c50565b60408301525060606136c284828501612c50565b60608301525060806136d684828501612c92565b60808301525060a06136ea84828501612c92565b60a08301525092915050565b600067ffffffffffffffff8211156137115761371061209e565b5b61371a8261208d565b9050602081019050919050565b600061373a613735846136f6565b6120fe565b90508281526020810184848401111561375657613755612088565b5b61376184828561270a565b509392505050565b600082601f83011261377e5761377d611ee1565b5b815161378e848260208601613727565b91505092915050565b60008060008060008060006101a0888a0312156137b7576137b6611dbe565b5b60006137c58a828b01612c50565b97505060206137d68a828b0161346e565b96505060406137e78a828b01612c50565b95505060606137f88a828b0161353e565b94505061014088015167ffffffffffffffff81111561381a57613819611dc3565b5b6138268a828b0161363a565b9350506101606138388a828b01612c92565b92505061018088015167ffffffffffffffff81111561385a57613859611dc3565b5b6138668a828b01613769565b91505092959891949750929550565b600060208201905081810360008301526138908184866132a5565b90509392505050565b600067ffffffffffffffff8211156138b4576138b361209e565b5b602082029050602081019050919050565b6000604082840312156138db576138da613483565b5b6138e560406120fe565b905060006138f584828501612c50565b60008301525060206139098482850161346e565b60208301525092915050565b600061392861392384613899565b6120fe565b9050808382526020820190506040840283018581111561394b5761394a611eeb565b5b835b81811015613974578061396088826138c5565b84526020840193505060408101905061394d565b5050509392505050565b600082601f83011261399357613992611ee1565b5b81516139a3848260208601613915565b91505092915050565b6000602082840312156139c2576139c1611dbe565b5b600082015167ffffffffffffffff8111156139e0576139df611dc3565b5b6139ec8482850161397e565b91505092915050565b6000604082019050613a0a6000830185612212565b613a176020830184612212565b9392505050565b6000819050919050565b6000613a376020840184611ddf565b905092915050565b6000613a4e6020840184611ea0565b905092915050565b60408201613a676000830183613a28565b613a7460008501826125cc565b50613a826020830183613a3f565b613a8f6020850182612945565b50505050565b6000613aa18383613a56565b60408301905092915050565b600082905092915050565b6000604082019050919050565b6000613ad18385612924565b9350613adc82613a1e565b8060005b85811015613b1557613af28284613aad565b613afc8882613a95565b9750613b0783613ab8565b925050600181019050613ae0565b5085925050509392505050565b600082825260208201905092915050565b6000819050919050565b6000613b4c602084018461255b565b905092915050565b613b5d8161253a565b82525050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613b8f57613b8e613b6d565b5b83810192508235915060208301925067ffffffffffffffff821115613bb757613bb6613b63565b5b600182023603831315613bcd57613bcc613b68565b5b509250929050565b6000613be183856126f9565b9350613bee83858461214a565b613bf78361208d565b840190509392505050565b600060408301613c156000840184613b3d565b613c226000860182613b54565b50613c306020840184613b72565b8583036020870152613c43838284613bd5565b925050508091505092915050565b6000613c5d8383613c02565b905092915050565b600082356001604003833603038112613c8157613c80613b6d565b5b82810191505092915050565b6000602082019050919050565b6000613ca68385613b22565b935083602084028501613cb884613b33565b8060005b87811015613cfc578484038952613cd38284613c65565b613cdd8582613c51565b9450613ce883613c8d565b925060208a01995050600181019050613cbc565b50829750879450505050509392505050565b6000608082019050613d23600083018a612212565b8181036020830152613d3681888a613ac5565b90508181036040830152613d4b8186886132a5565b90508181036060830152613d60818486613c9a565b905098975050505050505050565b600080600060608486031215613d8757613d86611dbe565b5b600084015167ffffffffffffffff811115613da557613da4611dc3565b5b613db18682870161360c565b9350506020613dc28682870161346e565b9250506040613dd386828701612c50565b9150509250925092565b7f4f6e6c792044414f20636f726520636f6e747261637473206d61792063616c6c60008201527f2072656769737465724d656d6265720000000000000000000000000000000000602082015250565b6000613e39602f83612bc8565b9150613e4482613ddd565b604082019050919050565b60006020820190508181036000830152613e6881613e2c565b9050919050565b6000613e7a82611d80565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613eac57613eab612def565b5b60018201905091905056fea2646970667358221220c79bd5679bb63264b2192b09b1c634fa20c9e328a470579d081f135e0332cd4164736f6c63430008180033",
"linkReferences": {},
"deployedLinkReferences": {}
}