60806040526001600560006101000a81548160ff0219169083151502179055506001600760006101000a81548160ff0219169083151502179055506001600760016101000a81548160ff021916908360ff160217905550601760085560176009556000600a556000600b556017600c556017600d556017600e556000600f556009600a6200008e919062000667565b6404a817c800620000a09190620006b8565b6010556009600a620000b3919062000667565b6404a817c800620000c59190620006b8565b6011556009600a620000d8919062000667565b6000620000e69190620006b8565b6012556009600a620000f9919062000667565b64039bdf3b006200010b9190620006b8565b60135560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055503480156200015057600080fd5b506000620001636200049c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620002116200049c60201b60201c565b600760026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000261919062000667565b64e8d4a51000620002739190620006b8565b60016000620002876200049c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002db620004a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040e6200049c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200046d919062000667565b64e8d4a510006200047f9190620006b8565b6040516200048e919062000714565b60405180910390a362000731565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200055b57808604811115620005335762000532620004cd565b5b6001851615620005435780820291505b80810290506200055385620004fc565b945062000513565b94509492505050565b60008262000576576001905062000649565b8162000586576000905062000649565b81600181146200059f5760028114620005aa57620005e0565b600191505062000649565b60ff841115620005bf57620005be620004cd565b5b8360020a915084821115620005d957620005d8620004cd565b5b5062000649565b5060208310610133831016604e8410600b84101617156200061a5782820a905083811115620006145762000613620004cd565b5b62000649565b62000629848484600162000509565b92509050818404811115620006435762000642620004cd565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006748262000650565b915062000681836200065a565b9250620006b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000564565b905092915050565b6000620006c58262000650565b9150620006d28362000650565b9250828202620006e28162000650565b91508282048414831517620006fc57620006fb620004cd565b5b5092915050565b6200070e8162000650565b82525050565b60006020820190506200072b600083018462000703565b92915050565b61383280620007416000396000f3fe60806040526004361061014f5760003560e01c8063722b62ad116100b6578063a9059cbb1161006f578063a9059cbb14610445578063bf474bed14610482578063c876d0b9146104ad578063c9567bf9146104d8578063dd62ed3e146104ef578063f8686f071461052c57610156565b8063722b62ad14610357578063751039fc146103825780637d1db4a5146103995780638da5cb5b146103c45780638f9a55c0146103ef57806395d89b411461041a57610156565b8063504ce28111610108578063504ce2811461028157806351bc3c85146102aa578063617fe0ed146102c1578063692cda7a146102ec57806370a0823114610303578063715018a61461034057610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610543565b60405161017d91906126e6565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906127a1565b610580565b6040516101ba91906127fc565b60405180910390f35b3480156101cf57600080fd5b506101d861059e565b6040516101e59190612826565b60405180910390f35b3480156101fa57600080fd5b506102036105a4565b6040516102109190612826565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b9190612841565b6105c9565b60405161024d91906127fc565b60405180910390f35b34801561026257600080fd5b5061026b6106a2565b60405161027891906128b0565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a391906127a1565b6106ab565b005b3480156102b657600080fd5b506102bf610829565b005b3480156102cd57600080fd5b506102d66108c6565b6040516102e391906127fc565b60405180910390f35b3480156102f857600080fd5b506103016108d9565b005b34801561030f57600080fd5b5061032a600480360381019061032591906128cb565b610a1c565b6040516103379190612826565b60405180910390f35b34801561034c57600080fd5b50610355610a65565b005b34801561036357600080fd5b5061036c610bb8565b60405161037991906128b0565b60405180910390f35b34801561038e57600080fd5b50610397610bcb565b005b3480156103a557600080fd5b506103ae610cfe565b6040516103bb9190612826565b60405180910390f35b3480156103d057600080fd5b506103d9610d04565b6040516103e69190612907565b60405180910390f35b3480156103fb57600080fd5b50610404610d2d565b6040516104119190612826565b60405180910390f35b34801561042657600080fd5b5061042f610d33565b60405161043c91906126e6565b60405180910390f35b34801561045157600080fd5b5061046c600480360381019061046791906127a1565b610d70565b60405161047991906127fc565b60405180910390f35b34801561048e57600080fd5b50610497610d8e565b6040516104a49190612826565b60405180910390f35b3480156104b957600080fd5b506104c2610d94565b6040516104cf91906127fc565b60405180910390f35b3480156104e457600080fd5b506104ed610da7565b005b3480156104fb57600080fd5b5061051660048036038101906105119190612922565b6112e0565b6040516105239190612826565b60405180910390f35b34801561053857600080fd5b50610541611367565b005b60606040518060400160405280600a81526020017f4152414d53414d53414d00000000000000000000000000000000000000000000815250905090565b600061059461058d611419565b8484611421565b6001905092915050565b60135481565b60006009600a6105b49190612ac4565b64e8d4a510006105c49190612b0f565b905090565b60006105d68484846115ea565b610697846105e2611419565b610692856040518060600160405280602881526020016137d560289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610648611419565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121279092919063ffffffff16565b611421565b600190509392505050565b60006009905090565b6106b3611419565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073790612b9d565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016107a2929190612c1c565b6020604051808303816000875af11580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e59190612c71565b610824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081b90612cea565b60405180910390fd5b505050565b600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086a611419565b73ffffffffffffffffffffffffffffffffffffffff161461088a57600080fd5b600061089530610a1c565b905060008111156108aa576108a98161218b565b5b600047905060008111156108c2576108c181612402565b5b5050565b600760009054906101000a900460ff1681565b6108e1611419565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096590612b9d565b60405180910390fd5b600047116109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a890612d56565b60405180910390fd5b600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610a19573d6000803e3d6000fd5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a6d611419565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af190612b9d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600760019054906101000a900460ff1681565b610bd3611419565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5790612b9d565b60405180910390fd5b6009600a610c6e9190612ac4565b64e8d4a51000610c7e9190612b0f565b6010819055506009600a610c929190612ac4565b64e8d4a51000610ca29190612b0f565b6011819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610cd79190612ac4565b64e8d4a51000610ce79190612b0f565b604051610cf49190612826565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600581526020017f44414e4345000000000000000000000000000000000000000000000000000000815250905090565b6000610d84610d7d611419565b84846115ea565b6001905092915050565b60125481565b600560009054906101000a900460ff1681565b610daf611419565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3390612b9d565b60405180910390fd5b601560149054906101000a900460ff1615610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8390612dc2565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f2b30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f169190612ac4565b64e8d4a51000610f269190612b0f565b611421565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbc9190612df7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611045573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110699190612df7565b6040518363ffffffff1660e01b8152600401611086929190612e24565b6020604051808303816000875af11580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c99190612df7565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061115230610a1c565b60008061115d610d04565b426040518863ffffffff1660e01b815260040161117f96959493929190612e88565b60606040518083038185885af115801561119d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111c29190612efe565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611264929190612f51565b6020604051808303816000875af1158015611283573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a79190612c71565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61136f611419565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f390612b9d565b60405180910390fd5b6000600560006101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148790612fec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f69061307e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115dd9190612826565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165090613110565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bf906131a2565b60405180910390fd5b6000811161170b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170290613234565b60405180910390fd5b6000611715610d04565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117835750611753610d04565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e6a576117c460646117b6600c54600f54116117a3576008546117a7565b600a545b8561246e90919063ffffffff16565b6124e890919063ffffffff16565b9050600560009054906101000a900460ff161561195357601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118875750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119525743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061190d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611904906132ec565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119fe5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a545750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b0f57601054821115611a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9590613358565b60405180910390fd5b60115482611aab85610a1c565b611ab59190613378565b1115611af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aed906133f8565b60405180910390fd5b600f6000815480929190611b0990613418565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b9857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bdc57611bd96064611bcb600d54600f5411611bb857600954611bbc565b600b545b8561246e90919063ffffffff16565b6124e890919063ffffffff16565b90505b6000611be730610a1c565b905060158054906101000a900460ff16158015611c515750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c695750601560169054906101000a900460ff165b8015611c76575060125481115b8015611c855750600e54600f54115b15611cc157611ca7611ca284611c9d84601354612532565b612532565b61218b565b60004790506000811115611cbf57611cbe47612402565b5b505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611d2a5750600760009054906101000a900460ff165b8015611d805750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e685742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd906134ac565b60405180910390fd5b600760019054906101000a900460ff1660ff1642611e249190613378565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b6000811115611f6e57611ec581600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461254b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f659190612826565b60405180910390a35b611fc082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125a990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206761201982846125a990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461254b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61210c84866125a990919063ffffffff16565b6040516121199190612826565b60405180910390a350505050565b600083831115829061216f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216691906126e6565b60405180910390fd5b506000838561217e91906134cc565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121c2576121c1613500565b5b6040519080825280602002602001820160405280156121f05781602001602082028036833780820191505090505b50905030816000815181106122085761220761352f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d39190612df7565b816001815181106122e7576122e661352f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061234e30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611421565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123b295949392919061361c565b600060405180830381600087803b1580156123cc57600080fd5b505af11580156123e0573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b600760029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561246a573d6000803e3d6000fd5b5050565b600080830361248057600090506124e2565b6000828461248e9190612b0f565b905082848261249d91906136a5565b146124dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d490613748565b60405180910390fd5b809150505b92915050565b600061252a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125f3565b905092915050565b60008183116125415782612543565b815b905092915050565b600080828461255a9190613378565b90508381101561259f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612596906137b4565b60405180910390fd5b8091505092915050565b60006125eb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612127565b905092915050565b6000808311829061263a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263191906126e6565b60405180910390fd5b506000838561264991906136a5565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612690578082015181840152602081019050612675565b60008484015250505050565b6000601f19601f8301169050919050565b60006126b882612656565b6126c28185612661565b93506126d2818560208601612672565b6126db8161269c565b840191505092915050565b6000602082019050818103600083015261270081846126ad565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127388261270d565b9050919050565b6127488161272d565b811461275357600080fd5b50565b6000813590506127658161273f565b92915050565b6000819050919050565b61277e8161276b565b811461278957600080fd5b50565b60008135905061279b81612775565b92915050565b600080604083850312156127b8576127b7612708565b5b60006127c685828601612756565b92505060206127d78582860161278c565b9150509250929050565b60008115159050919050565b6127f6816127e1565b82525050565b600060208201905061281160008301846127ed565b92915050565b6128208161276b565b82525050565b600060208201905061283b6000830184612817565b92915050565b60008060006060848603121561285a57612859612708565b5b600061286886828701612756565b935050602061287986828701612756565b925050604061288a8682870161278c565b9150509250925092565b600060ff82169050919050565b6128aa81612894565b82525050565b60006020820190506128c560008301846128a1565b92915050565b6000602082840312156128e1576128e0612708565b5b60006128ef84828501612756565b91505092915050565b6129018161272d565b82525050565b600060208201905061291c60008301846128f8565b92915050565b6000806040838503121561293957612938612708565b5b600061294785828601612756565b925050602061295885828601612756565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156129e8578086048111156129c4576129c3612962565b5b60018516156129d35780820291505b80810290506129e185612991565b94506129a8565b94509492505050565b600082612a015760019050612abd565b81612a0f5760009050612abd565b8160018114612a255760028114612a2f57612a5e565b6001915050612abd565b60ff841115612a4157612a40612962565b5b8360020a915084821115612a5857612a57612962565b5b50612abd565b5060208310610133831016604e8410600b8410161715612a935782820a905083811115612a8e57612a8d612962565b5b612abd565b612aa0848484600161299e565b92509050818404811115612ab757612ab6612962565b5b81810290505b9392505050565b6000612acf8261276b565b9150612ada83612894565b9250612b077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129f1565b905092915050565b6000612b1a8261276b565b9150612b258361276b565b9250828202612b338161276b565b91508282048414831517612b4a57612b49612962565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b87602083612661565b9150612b9282612b51565b602082019050919050565b60006020820190508181036000830152612bb681612b7a565b9050919050565b6000819050919050565b6000612be2612bdd612bd88461270d565b612bbd565b61270d565b9050919050565b6000612bf482612bc7565b9050919050565b6000612c0682612be9565b9050919050565b612c1681612bfb565b82525050565b6000604082019050612c316000830185612c0d565b612c3e6020830184612817565b9392505050565b612c4e816127e1565b8114612c5957600080fd5b50565b600081519050612c6b81612c45565b92915050565b600060208284031215612c8757612c86612708565b5b6000612c9584828501612c5c565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000612cd4601583612661565b9150612cdf82612c9e565b602082019050919050565b60006020820190508181036000830152612d0381612cc7565b9050919050565b7f4e6f2045544820746f207472616e736665720000000000000000000000000000600082015250565b6000612d40601283612661565b9150612d4b82612d0a565b602082019050919050565b60006020820190508181036000830152612d6f81612d33565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612dac601783612661565b9150612db782612d76565b602082019050919050565b60006020820190508181036000830152612ddb81612d9f565b9050919050565b600081519050612df18161273f565b92915050565b600060208284031215612e0d57612e0c612708565b5b6000612e1b84828501612de2565b91505092915050565b6000604082019050612e3960008301856128f8565b612e4660208301846128f8565b9392505050565b6000819050919050565b6000612e72612e6d612e6884612e4d565b612bbd565b61276b565b9050919050565b612e8281612e57565b82525050565b600060c082019050612e9d60008301896128f8565b612eaa6020830188612817565b612eb76040830187612e79565b612ec46060830186612e79565b612ed160808301856128f8565b612ede60a0830184612817565b979650505050505050565b600081519050612ef881612775565b92915050565b600080600060608486031215612f1757612f16612708565b5b6000612f2586828701612ee9565b9350506020612f3686828701612ee9565b9250506040612f4786828701612ee9565b9150509250925092565b6000604082019050612f6660008301856128f8565b612f736020830184612817565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612fd6602483612661565b9150612fe182612f7a565b604082019050919050565b6000602082019050818103600083015261300581612fc9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613068602283612661565b91506130738261300c565b604082019050919050565b600060208201905081810360008301526130978161305b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130fa602583612661565b91506131058261309e565b604082019050919050565b60006020820190508181036000830152613129816130ed565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061318c602383612661565b915061319782613130565b604082019050919050565b600060208201905081810360008301526131bb8161317f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061321e602983612661565b9150613229826131c2565b604082019050919050565b6000602082019050818103600083015261324d81613211565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b60006132d6604883612661565b91506132e182613254565b606082019050919050565b60006020820190508181036000830152613305816132c9565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613342601983612661565b915061334d8261330c565b602082019050919050565b6000602082019050818103600083015261337181613335565b9050919050565b60006133838261276b565b915061338e8361276b565b92508282019050808211156133a6576133a5612962565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006133e2601a83612661565b91506133ed826133ac565b602082019050919050565b60006020820190508181036000830152613411816133d5565b9050919050565b60006134238261276b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361345557613454612962565b5b600182019050919050565b7f62757920436f6f6c646f776e2065786973747300000000000000000000000000600082015250565b6000613496601383612661565b91506134a182613460565b602082019050919050565b600060208201905081810360008301526134c581613489565b9050919050565b60006134d78261276b565b91506134e28361276b565b92508282039050818111156134fa576134f9612962565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6135938161272d565b82525050565b60006135a5838361358a565b60208301905092915050565b6000602082019050919050565b60006135c98261355e565b6135d38185613569565b93506135de8361357a565b8060005b8381101561360f5781516135f68882613599565b9750613601836135b1565b9250506001810190506135e2565b5085935050505092915050565b600060a0820190506136316000830188612817565b61363e6020830187612e79565b818103604083015261365081866135be565b905061365f60608301856128f8565b61366c6080830184612817565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136b08261276b565b91506136bb8361276b565b9250826136cb576136ca613676565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613732602183612661565b915061373d826136d6565b604082019050919050565b6000602082019050818103600083015261376181613725565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061379e601b83612661565b91506137a982613768565b602082019050919050565b600060208201905081810360008301526137cd81613791565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122030748309b5e13e5a856bf4127338e3d67b88cae98a43146b959408da8ff0558b64736f6c63430008120033