0x60806040526001600e60006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040516200458138038062004581833981810160405281019062000052919062000455565b6040518060400160405280601681526020017f33442049524c2056312062792046656c74205a696e65000000000000000000008152506040518060400160405280600581526020017f69726c76310000000000000000000000000000000000000000000000000000008152508160009080519060200190620000d692919062000208565b508060019080519060200190620000ef92919062000208565b5050506001600a819055506200011a6200010e6200013a60201b60201c565b6200014260201b60201c565b80600f90805190602001906200013292919062000208565b50506200050b565b600033905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200021690620004d5565b90600052602060002090601f0160209004810192826200023a576000855562000286565b82601f106200025557805160ff191683800117855562000286565b8280016001018555821562000286579182015b828111156200028557825182559160200191906001019062000268565b5b50905062000295919062000299565b5090565b5b80821115620002b45760008160009055506001016200029a565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200032182620002d6565b810181811067ffffffffffffffff82111715620003435762000342620002e7565b5b80604052505050565b600062000358620002b8565b905062000366828262000316565b919050565b600067ffffffffffffffff821115620003895762000388620002e7565b5b6200039482620002d6565b9050602081019050919050565b60005b83811015620003c1578082015181840152602081019050620003a4565b83811115620003d1576000848401525b50505050565b6000620003ee620003e8846200036b565b6200034c565b9050828152602081018484840111156200040d576200040c620002d1565b5b6200041a848285620003a1565b509392505050565b600082601f8301126200043a5762000439620002cc565b5b81516200044c848260208601620003d7565b91505092915050565b6000602082840312156200046e576200046d620002c2565b5b600082015167ffffffffffffffff8111156200048f576200048e620002c7565b5b6200049d8482850162000422565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004ee57607f821691505b60208210811415620005055762000504620004a6565b5b50919050565b614066806200051b6000396000f3fe6080604052600436106101cd5760003560e01c806370a08231116100f7578063b88d4fde11610095578063d6c336ed11610064578063d6c336ed1461068e578063e985e9c5146106b9578063eb8d2444146106f6578063f2fde38b14610721576101cd565b8063b88d4fde146105c0578063b8fc1051146105e9578063bb660c0a14610614578063c87b56dd14610651576101cd565b80638da5cb5b116100d15780638da5cb5b1461052557806395d89b4114610550578063a0712d681461057b578063a22cb46514610597576101cd565b806370a08231146104a6578063715018a6146104e35780638d859f3e146104fa576101cd565b80632a55205a1161016f57806342842e0e1161013e57806342842e0e146103da5780634f6ccce71461040357806355f804b3146104405780636352211e14610469576101cd565b80632a55205a1461031d5780632f745c591461035b57806332cb6b0c146103985780633ccfd60b146103c3576101cd565b8063081812fc116101ab578063081812fc14610263578063095ea7b3146102a057806318160ddd146102c957806323b872dd146102f4576101cd565b806301ffc9a7146101d257806302c889891461020f57806306fdde0314610238575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f49190612910565b61074a565b6040516102069190612958565b60405180910390f35b34801561021b57600080fd5b506102366004803603810190610231919061299f565b6107c4565b005b34801561024457600080fd5b5061024d61085d565b60405161025a9190612a65565b60405180910390f35b34801561026f57600080fd5b5061028a60048036038101906102859190612abd565b6108ef565b6040516102979190612b2b565b60405180910390f35b3480156102ac57600080fd5b506102c760048036038101906102c29190612b72565b610974565b005b3480156102d557600080fd5b506102de610a8c565b6040516102eb9190612bc1565b60405180910390f35b34801561030057600080fd5b5061031b60048036038101906103169190612bdc565b610a99565b005b34801561032957600080fd5b50610344600480360381019061033f9190612c2f565b610af9565b604051610352929190612c6f565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190612b72565b610b23565b60405161038f9190612bc1565b60405180910390f35b3480156103a457600080fd5b506103ad610bc8565b6040516103ba9190612bc1565b60405180910390f35b3480156103cf57600080fd5b506103d8610bcd565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190612bdc565b610c23565b005b34801561040f57600080fd5b5061042a60048036038101906104259190612abd565b610c43565b6040516104379190612bc1565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190612dcd565b610cb4565b005b34801561047557600080fd5b50610490600480360381019061048b9190612abd565b610d4a565b60405161049d9190612b2b565b60405180910390f35b3480156104b257600080fd5b506104cd60048036038101906104c89190612e16565b610dfc565b6040516104da9190612bc1565b60405180910390f35b3480156104ef57600080fd5b506104f8610eb4565b005b34801561050657600080fd5b5061050f610f3c565b60405161051c9190612bc1565b60405180910390f35b34801561053157600080fd5b5061053a610f48565b6040516105479190612b2b565b60405180910390f35b34801561055c57600080fd5b50610565610f72565b6040516105729190612a65565b60405180910390f35b61059560048036038101906105909190612abd565b611004565b005b3480156105a357600080fd5b506105be60048036038101906105b99190612e43565b611245565b005b3480156105cc57600080fd5b506105e760048036038101906105e29190612f24565b61125b565b005b3480156105f557600080fd5b506105fe6112bd565b60405161060b9190612bc1565b60405180910390f35b34801561062057600080fd5b5061063b60048036038101906106369190612e16565b6112c2565b6040516106489190612bc1565b60405180910390f35b34801561065d57600080fd5b5061067860048036038101906106739190612abd565b611317565b6040516106859190612a65565b60405180910390f35b34801561069a57600080fd5b506106a36113be565b6040516106b09190612bc1565b60405180910390f35b3480156106c557600080fd5b506106e060048036038101906106db9190612fa7565b6113c3565b6040516106ed9190612958565b60405180910390f35b34801561070257600080fd5b5061070b611457565b6040516107189190612958565b60405180910390f35b34801561072d57600080fd5b5061074860048036038101906107439190612e16565b61146a565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107bd57506107bc82611562565b5b9050919050565b6107cc611644565b73ffffffffffffffffffffffffffffffffffffffff166107ea610f48565b73ffffffffffffffffffffffffffffffffffffffff1614610840576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083790613033565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b60606000805461086c90613082565b80601f016020809104026020016040519081016040528092919081815260200182805461089890613082565b80156108e55780601f106108ba576101008083540402835291602001916108e5565b820191906000526020600020905b8154815290600101906020018083116108c857829003601f168201915b5050505050905090565b60006108fa8261164c565b610939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093090613126565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061097f82610d4a565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e7906131b8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610a0f611644565b73ffffffffffffffffffffffffffffffffffffffff161480610a3e5750610a3d81610a38611644565b6113c3565b5b610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a749061324a565b60405180910390fd5b610a8783836116b8565b505050565b6000600880549050905090565b610aaa610aa4611644565b82611771565b610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae0906132dc565b60405180910390fd5b610af483838361184f565b505050565b600080306127106103e885610b0e919061332b565b610b1891906133b4565b915091509250929050565b6000610b2e83610dfc565b8210610b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6690613457565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b606481565b6000479050610bda610f48565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c1f573d6000803e3d6000fd5b5050565b610c3e8383836040518060200160405280600081525061125b565b505050565b6000610c4d610a8c565b8210610c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c85906134e9565b60405180910390fd5b60088281548110610ca257610ca1613509565b5b90600052602060002001549050919050565b610cbc611644565b73ffffffffffffffffffffffffffffffffffffffff16610cda610f48565b73ffffffffffffffffffffffffffffffffffffffff1614610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2790613033565b60405180910390fd5b80600f9080519060200190610d46929190612801565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dea906135aa565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e649061363c565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ebc611644565b73ffffffffffffffffffffffffffffffffffffffff16610eda610f48565b73ffffffffffffffffffffffffffffffffffffffff1614610f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2790613033565b60405180910390fd5b610f3a6000611aab565b565b67016345785d8a000081565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610f8190613082565b80601f0160208091040260200160405190810160405280929190818152602001828054610fad90613082565b8015610ffa5780601f10610fcf57610100808354040283529160200191610ffa565b820191906000526020600020905b815481529060010190602001808311610fdd57829003601f168201915b5050505050905090565b6002600a54141561104a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611041906136a8565b60405180910390fd5b6002600a81905550600e60009054906101000a900460ff166110a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109890613714565b60405180910390fd5b806110b26110ad611644565b6112c2565b106110cd576110c86110c2611644565b82611b71565b611108565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90613780565b60405180910390fd5b6064600182611115610a8c565b61111f91906137a0565b61112991906137f6565b10611169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116090613876565b60405180910390fd5b600a8111156111ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a4906138e2565b60405180910390fd5b8067016345785d8a00006111c1919061332b565b341015611203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fa90613974565b60405180910390fd5b60005b8181101561123957611226611219611644565b611221610a8c565b611bcb565b808061123190613994565b915050611206565b506001600a8190555050565b611257611250611644565b8383611be9565b5050565b61126c611266611644565b83611771565b6112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a2906132dc565b60405180910390fd5b6112b784848484611d56565b50505050565b600a81565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600a61131091906137f6565b9050919050565b60606113228261164c565b611361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135890613a4f565b60405180910390fd5b600061136b611db2565b9050600081511161138b57604051806020016040528060008152506113b6565b8061139584611e44565b6040516020016113a6929190613aab565b6040516020818303038152906040525b915050919050565b600a81565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600e60009054906101000a900460ff1681565b611472611644565b73ffffffffffffffffffffffffffffffffffffffff16611490610f48565b73ffffffffffffffffffffffffffffffffffffffff16146114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dd90613033565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d90613b41565b60405180910390fd5b61155f81611aab565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061162d57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061163d575061163c82611fa5565b5b9050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661172b83610d4a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061177c8261164c565b6117bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b290613bd3565b60405180910390fd5b60006117c683610d4a565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061183557508373ffffffffffffffffffffffffffffffffffffffff1661181d846108ef565b73ffffffffffffffffffffffffffffffffffffffff16145b80611846575061184581856113c3565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661186f82610d4a565b73ffffffffffffffffffffffffffffffffffffffff16146118c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bc90613c65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613cf7565b60405180910390fd5b61194083838361200f565b61194b6000826116b8565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461199b91906137f6565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119f291906137a0565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bc091906137a0565b925050819055505050565b611be5828260405180602001604052806000815250612123565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4f90613d63565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611d499190612958565b60405180910390a3505050565b611d6184848461184f565b611d6d8484848461217e565b611dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da390613df5565b60405180910390fd5b50505050565b6060600f8054611dc190613082565b80601f0160208091040260200160405190810160405280929190818152602001828054611ded90613082565b8015611e3a5780601f10611e0f57610100808354040283529160200191611e3a565b820191906000526020600020905b815481529060010190602001808311611e1d57829003601f168201915b5050505050905090565b60606000821415611e8c576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611fa0565b600082905060005b60008214611ebe578080611ea790613994565b915050600a82611eb791906133b4565b9150611e94565b60008167ffffffffffffffff811115611eda57611ed9612ca2565b5b6040519080825280601f01601f191660200182016040528015611f0c5781602001600182028036833780820191505090505b5090505b60008514611f9957600182611f2591906137f6565b9150600a85611f349190613e15565b6030611f4091906137a0565b60f81b818381518110611f5657611f55613509565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611f9291906133b4565b9450611f10565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61201a838383612315565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561205d576120588161231a565b61209c565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461209b5761209a8382612363565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120df576120da816124d0565b61211e565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461211d5761211c82826125a1565b5b5b505050565b61212d8383612620565b61213a600084848461217e565b612179576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217090613df5565b60405180910390fd5b505050565b600061219f8473ffffffffffffffffffffffffffffffffffffffff166127ee565b15612308578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026121c8611644565b8786866040518563ffffffff1660e01b81526004016121ea9493929190613e9b565b602060405180830381600087803b15801561220457600080fd5b505af192505050801561223557506040513d601f19601f820116820180604052508101906122329190613efc565b60015b6122b8573d8060008114612265576040519150601f19603f3d011682016040523d82523d6000602084013e61226a565b606091505b506000815114156122b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a790613df5565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061230d565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161237084610dfc565b61237a91906137f6565b905060006007600084815260200190815260200160002054905081811461245f576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506124e491906137f6565b905060006009600084815260200190815260200160002054905060006008838154811061251457612513613509565b5b90600052602060002001549050806008838154811061253657612535613509565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061258557612584613f29565b5b6001900381819060005260206000200160009055905550505050565b60006125ac83610dfc565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268790613fa4565b60405180910390fd5b6126998161164c565b156126d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d090614010565b60405180910390fd5b6126e56000838361200f565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461273591906137a0565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b82805461280d90613082565b90600052602060002090601f01602090048101928261282f5760008555612876565b82601f1061284857805160ff1916838001178555612876565b82800160010185558215612876579182015b8281111561287557825182559160200191906001019061285a565b5b5090506128839190612887565b5090565b5b808211156128a0576000816000905550600101612888565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6128ed816128b8565b81146128f857600080fd5b50565b60008135905061290a816128e4565b92915050565b600060208284031215612926576129256128ae565b5b6000612934848285016128fb565b91505092915050565b60008115159050919050565b6129528161293d565b82525050565b600060208201905061296d6000830184612949565b92915050565b61297c8161293d565b811461298757600080fd5b50565b60008135905061299981612973565b92915050565b6000602082840312156129b5576129b46128ae565b5b60006129c38482850161298a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a065780820151818401526020810190506129eb565b83811115612a15576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a37826129cc565b612a4181856129d7565b9350612a518185602086016129e8565b612a5a81612a1b565b840191505092915050565b60006020820190508181036000830152612a7f8184612a2c565b905092915050565b6000819050919050565b612a9a81612a87565b8114612aa557600080fd5b50565b600081359050612ab781612a91565b92915050565b600060208284031215612ad357612ad26128ae565b5b6000612ae184828501612aa8565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b1582612aea565b9050919050565b612b2581612b0a565b82525050565b6000602082019050612b406000830184612b1c565b92915050565b612b4f81612b0a565b8114612b5a57600080fd5b50565b600081359050612b6c81612b46565b92915050565b60008060408385031215612b8957612b886128ae565b5b6000612b9785828601612b5d565b9250506020612ba885828601612aa8565b9150509250929050565b612bbb81612a87565b82525050565b6000602082019050612bd66000830184612bb2565b92915050565b600080600060608486031215612bf557612bf46128ae565b5b6000612c0386828701612b5d565b9350506020612c1486828701612b5d565b9250506040612c2586828701612aa8565b9150509250925092565b60008060408385031215612c4657612c456128ae565b5b6000612c5485828601612aa8565b9250506020612c6585828601612aa8565b9150509250929050565b6000604082019050612c846000830185612b1c565b612c916020830184612bb2565b9392505050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cda82612a1b565b810181811067ffffffffffffffff82111715612cf957612cf8612ca2565b5b80604052505050565b6000612d0c6128a4565b9050612d188282612cd1565b919050565b600067ffffffffffffffff821115612d3857612d37612ca2565b5b612d4182612a1b565b9050602081019050919050565b82818337600083830152505050565b6000612d70612d6b84612d1d565b612d02565b905082815260208101848484011115612d8c57612d8b612c9d565b5b612d97848285612d4e565b509392505050565b600082601f830112612db457612db3612c98565b5b8135612dc4848260208601612d5d565b91505092915050565b600060208284031215612de357612de26128ae565b5b600082013567ffffffffffffffff811115612e0157612e006128b3565b5b612e0d84828501612d9f565b91505092915050565b600060208284031215612e2c57612e2b6128ae565b5b6000612e3a84828501612b5d565b91505092915050565b60008060408385031215612e5a57612e596128ae565b5b6000612e6885828601612b5d565b9250506020612e798582860161298a565b9150509250929050565b600067ffffffffffffffff821115612e9e57612e9d612ca2565b5b612ea782612a1b565b9050602081019050919050565b6000612ec7612ec284612e83565b612d02565b905082815260208101848484011115612ee357612ee2612c9d565b5b612eee848285612d4e565b509392505050565b600082601f830112612f0b57612f0a612c98565b5b8135612f1b848260208601612eb4565b91505092915050565b60008060008060808587031215612f3e57612f3d6128ae565b5b6000612f4c87828801612b5d565b9450506020612f5d87828801612b5d565b9350506040612f6e87828801612aa8565b925050606085013567ffffffffffffffff811115612f8f57612f8e6128b3565b5b612f9b87828801612ef6565b91505092959194509250565b60008060408385031215612fbe57612fbd6128ae565b5b6000612fcc85828601612b5d565b9250506020612fdd85828601612b5d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061301d6020836129d7565b915061302882612fe7565b602082019050919050565b6000602082019050818103600083015261304c81613010565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061309a57607f821691505b602082108114156130ae576130ad613053565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613110602c836129d7565b915061311b826130b4565b604082019050919050565b6000602082019050818103600083015261313f81613103565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006131a26021836129d7565b91506131ad82613146565b604082019050919050565b600060208201905081810360008301526131d181613195565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b60006132346038836129d7565b915061323f826131d8565b604082019050919050565b6000602082019050818103600083015261326381613227565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b60006132c66031836129d7565b91506132d18261326a565b604082019050919050565b600060208201905081810360008301526132f5816132b9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061333682612a87565b915061334183612a87565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561337a576133796132fc565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133bf82612a87565b91506133ca83612a87565b9250826133da576133d9613385565b5b828204905092915050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000613441602b836129d7565b915061344c826133e5565b604082019050919050565b6000602082019050818103600083015261347081613434565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b60006134d3602c836129d7565b91506134de82613477565b604082019050919050565b60006020820190508181036000830152613502816134c6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b60006135946029836129d7565b915061359f82613538565b604082019050919050565b600060208201905081810360008301526135c381613587565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613626602a836129d7565b9150613631826135ca565b604082019050919050565b6000602082019050818103600083015261365581613619565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000613692601f836129d7565b915061369d8261365c565b602082019050919050565b600060208201905081810360008301526136c181613685565b9050919050565b7f53616c65206e6f74206163746976650000000000000000000000000000000000600082015250565b60006136fe600f836129d7565b9150613709826136c8565b602082019050919050565b6000602082019050818103600083015261372d816136f1565b9050919050565b7f4d696e74696e67206c696d697420657863656564656400000000000000000000600082015250565b600061376a6016836129d7565b915061377582613734565b602082019050919050565b600060208201905081810360008301526137998161375d565b9050919050565b60006137ab82612a87565b91506137b683612a87565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137eb576137ea6132fc565b5b828201905092915050565b600061380182612a87565b915061380c83612a87565b92508282101561381f5761381e6132fc565b5b828203905092915050565b7f45786365656473206d617820737570706c790000000000000000000000000000600082015250565b60006138606012836129d7565b915061386b8261382a565b602082019050919050565b6000602082019050818103600083015261388f81613853565b9050919050565b7f4d696e74206174206d6f737420313020617420612074696d6500000000000000600082015250565b60006138cc6019836129d7565b91506138d782613896565b602082019050919050565b600060208201905081810360008301526138fb816138bf565b9050919050565b7f496e73756666696369656e74207061796d656e742c20302e312045544820706560008201527f72206974656d0000000000000000000000000000000000000000000000000000602082015250565b600061395e6026836129d7565b915061396982613902565b604082019050919050565b6000602082019050818103600083015261398d81613951565b9050919050565b600061399f82612a87565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156139d2576139d16132fc565b5b600182019050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613a39602f836129d7565b9150613a44826139dd565b604082019050919050565b60006020820190508181036000830152613a6881613a2c565b9050919050565b600081905092915050565b6000613a85826129cc565b613a8f8185613a6f565b9350613a9f8185602086016129e8565b80840191505092915050565b6000613ab78285613a7a565b9150613ac38284613a7a565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b2b6026836129d7565b9150613b3682613acf565b604082019050919050565b60006020820190508181036000830152613b5a81613b1e565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613bbd602c836129d7565b9150613bc882613b61565b604082019050919050565b60006020820190508181036000830152613bec81613bb0565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b6000613c4f6029836129d7565b9150613c5a82613bf3565b604082019050919050565b60006020820190508181036000830152613c7e81613c42565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ce16024836129d7565b9150613cec82613c85565b604082019050919050565b60006020820190508181036000830152613d1081613cd4565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613d4d6019836129d7565b9150613d5882613d17565b602082019050919050565b60006020820190508181036000830152613d7c81613d40565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613ddf6032836129d7565b9150613dea82613d83565b604082019050919050565b60006020820190508181036000830152613e0e81613dd2565b9050919050565b6000613e2082612a87565b9150613e2b83612a87565b925082613e3b57613e3a613385565b5b828206905092915050565b600081519050919050565b600082825260208201905092915050565b6000613e6d82613e46565b613e778185613e51565b9350613e878185602086016129e8565b613e9081612a1b565b840191505092915050565b6000608082019050613eb06000830187612b1c565b613ebd6020830186612b1c565b613eca6040830185612bb2565b8181036060830152613edc8184613e62565b905095945050505050565b600081519050613ef6816128e4565b92915050565b600060208284031215613f1257613f116128ae565b5b6000613f2084828501613ee7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613f8e6020836129d7565b9150613f9982613f58565b602082019050919050565b60006020820190508181036000830152613fbd81613f81565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613ffa601c836129d7565b915061400582613fc4565b602082019050919050565b6000602082019050818103600083015261402981613fed565b905091905056fea264697066735822122072218cc4f6c3fec62b14ca35b35a2b0a916332c8105c8029651d305c0c049d9664736f6c634300080900330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001f68747470733a2f2f69726c76312e66656c747a696e652e6172742f6170692f00