6080604052683635c9adc5dea000006000196200001d919062000bb2565b6000196200002c919062000b03565b60065560006009556005600a556000600b556014600c55600b54600d55600c54600e55600d54600f55600e5460105573c0d0bfdd1f260bc604663b9be9458df42b06c9c2601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c0d0bfdd1f260bc604663b9be9458df42b06c9c2601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff021916908315150217905550620001796103e8620001656014683635c9adc5dea000006200077c60201b6200171a1790919060201c565b6200080060201b620017951790919060201c565b601755620001bb6103e8620001a76014683635c9adc5dea000006200077c60201b6200171a1790919060201c565b6200080060201b620017951790919060201c565b601855620001fd6103e8620001e96005683635c9adc5dea000006200077c60201b6200171a1790919060201c565b6200080060201b620017951790919060201c565b6019553480156200020d57600080fd5b506000620002206200085260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002d56200085260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b457600080fd5b505afa158015620003c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ef919062000902565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200045257600080fd5b505afa15801562000467573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200048d919062000902565b6040518363ffffffff1660e01b8152600401620004ac929190620009be565b602060405180830381600087803b158015620004c757600080fd5b505af1158015620004dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000502919062000902565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620005586200085a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007056200085260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200076d919062000a31565b60405180910390a35062000cc7565b600080831415620007915760009050620007fa565b60008284620007a1919062000aa2565b9050828482620007b2919062000a6a565b14620007f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007ec9062000a0f565b60405180910390fd5b809150505b92915050565b60006200084a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200088360201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620008cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008c49190620009eb565b60405180910390fd5b5060008385620008de919062000a6a565b9050809150509392505050565b600081519050620008fc8162000cad565b92915050565b6000602082840312156200091b576200091a62000c48565b5b60006200092b84828501620008eb565b91505092915050565b6200093f8162000b3e565b82525050565b6000620009528262000a4e565b6200095e818562000a59565b93506200097081856020860162000b7c565b6200097b8162000c4d565b840191505092915050565b60006200099560218362000a59565b9150620009a28262000c5e565b604082019050919050565b620009b88162000b72565b82525050565b6000604082019050620009d5600083018562000934565b620009e4602083018462000934565b9392505050565b6000602082019050818103600083015262000a07818462000945565b905092915050565b6000602082019050818103600083015262000a2a8162000986565b9050919050565b600060208201905062000a486000830184620009ad565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000a778262000b72565b915062000a848362000b72565b92508262000a975762000a9662000c19565b5b828204905092915050565b600062000aaf8262000b72565b915062000abc8362000b72565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000af85762000af762000bea565b5b828202905092915050565b600062000b108262000b72565b915062000b1d8362000b72565b92508282101562000b335762000b3262000bea565b5b828203905092915050565b600062000b4b8262000b52565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000b9c57808201518184015260208101905062000b7f565b8381111562000bac576000848401525b50505050565b600062000bbf8262000b72565b915062000bcc8362000b72565b92508262000bdf5762000bde62000c19565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000cb88162000b3e565b811462000cc457600080fd5b50565b613f038062000cd76000396000f3fe6080604052600436106101db5760003560e01c806374010ece11610102578063a9059cbb11610095578063d00efb2f11610064578063d00efb2f1461066a578063dd62ed3e14610695578063ea1644d5146106d2578063f2fde38b146106fb576101e2565b8063a9059cbb146105b0578063bfd79284146105ed578063c3c8cd801461062a578063c492f04614610641576101e2565b80638f9a55c0116100d15780638f9a55c01461050857806395d89b411461053357806398a5c3151461055e578063a2a957bb14610587576101e2565b806374010ece146104605780637d1db4a5146104895780638da5cb5b146104b45780638f70ccf7146104df576101e2565b8063313ce5671161017a5780636d8aa8f8116101495780636d8aa8f8146103cc5780636fc3eaec146103f557806370a082311461040c578063715018a614610449576101e2565b8063313ce5671461033657806349bd5a5e14610361578063622565891461038c5780636b999053146103a3576101e2565b80631694505e116101b65780631694505e1461027857806318160ddd146102a357806323b872dd146102ce5780632fd689e31461030b576101e2565b8062b8cf2a146101e757806306fdde0314610210578063095ea7b31461023b576101e2565b366101e257005b600080fd5b3480156101f357600080fd5b5061020e60048036038101906102099190612fc6565b610724565b005b34801561021c57600080fd5b5061022561084e565b6040516102329190613423565b60405180910390f35b34801561024757600080fd5b50610262600480360381019061025d9190612f26565b61088b565b60405161026f91906133ed565b60405180910390f35b34801561028457600080fd5b5061028d6108a9565b60405161029a9190613408565b60405180910390f35b3480156102af57600080fd5b506102b86108cf565b6040516102c59190613605565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190612ed3565b6108e0565b60405161030291906133ed565b60405180910390f35b34801561031757600080fd5b506103206109b9565b60405161032d9190613605565b60405180910390f35b34801561034257600080fd5b5061034b6109bf565b604051610358919061367a565b60405180910390f35b34801561036d57600080fd5b506103766109c8565b60405161038391906133d2565b60405180910390f35b34801561039857600080fd5b506103a16109ee565b005b3480156103af57600080fd5b506103ca60048036038101906103c59190612e39565b610aa5565b005b3480156103d857600080fd5b506103f360048036038101906103ee919061300f565b610b95565b005b34801561040157600080fd5b5061040a610c46565b005b34801561041857600080fd5b50610433600480360381019061042e9190612e39565b610d17565b6040516104409190613605565b60405180910390f35b34801561045557600080fd5b5061045e610d68565b005b34801561046c57600080fd5b506104876004803603810190610482919061303c565b610ebb565b005b34801561049557600080fd5b5061049e610f5a565b6040516104ab9190613605565b60405180910390f35b3480156104c057600080fd5b506104c9610f60565b6040516104d691906133d2565b60405180910390f35b3480156104eb57600080fd5b506105066004803603810190610501919061300f565b610f89565b005b34801561051457600080fd5b5061051d611042565b60405161052a9190613605565b60405180910390f35b34801561053f57600080fd5b50610548611048565b6040516105559190613423565b60405180910390f35b34801561056a57600080fd5b506105856004803603810190610580919061303c565b611085565b005b34801561059357600080fd5b506105ae60048036038101906105a99190613069565b611124565b005b3480156105bc57600080fd5b506105d760048036038101906105d29190612f26565b6111db565b6040516105e491906133ed565b60405180910390f35b3480156105f957600080fd5b50610614600480360381019061060f9190612e39565b6111f9565b60405161062191906133ed565b60405180910390f35b34801561063657600080fd5b5061063f611219565b005b34801561064d57600080fd5b5061066860048036038101906106639190612f66565b6112f2565b005b34801561067657600080fd5b5061067f61142c565b60405161068c9190613605565b60405180910390f35b3480156106a157600080fd5b506106bc60048036038101906106b79190612e93565b611432565b6040516106c99190613605565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f4919061303c565b6114b9565b005b34801561070757600080fd5b50610722600480360381019061071d9190612e39565b611558565b005b61072c6117df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b090613565565b60405180910390fd5b60005b815181101561084a576001601160008484815181106107de576107dd6139f8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061084290613951565b9150506107bc565b5050565b60606040518060400160405280600c81526020017f44414954454e475520494e550000000000000000000000000000000000000000815250905090565b600061089f6108986117df565b84846117e7565b6001905092915050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b60006108ed8484846119b2565b6109ae846108f96117df565b6109a985604051806060016040528060288152602001613ea660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061095f6117df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122379092919063ffffffff16565b6117e7565b600190509392505050565b60195481565b60006009905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109f66117df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7a90613565565b60405180910390fd5b683635c9adc5dea00000601781905550683635c9adc5dea00000601881905550565b610aad6117df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3190613565565b60405180910390fd5b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610b9d6117df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2190613565565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c876117df565b73ffffffffffffffffffffffffffffffffffffffff161480610cfd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce56117df565b73ffffffffffffffffffffffffffffffffffffffff16145b610d0657600080fd5b6000479050610d148161229b565b50565b6000610d61600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612396565b9050919050565b610d706117df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df490613565565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ec36117df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4790613565565b60405180910390fd5b8060178190555050565b60175481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f916117df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101590613565565b60405180910390fd5b80601660146101000a81548160ff0219169083151502179055504360088190555050565b60185481565b60606040518060400160405280600881526020017f44414954454e4755000000000000000000000000000000000000000000000000815250905090565b61108d6117df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111190613565565b60405180910390fd5b8060198190555050565b61112c6117df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b090613565565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b60006111ef6111e86117df565b84846119b2565b6001905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661125a6117df565b73ffffffffffffffffffffffffffffffffffffffff1614806112d05750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112b86117df565b73ffffffffffffffffffffffffffffffffffffffff16145b6112d957600080fd5b60006112e430610d17565b90506112ef81612404565b50565b6112fa6117df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e90613565565b60405180910390fd5b60005b838390508110156114265781600560008686858181106113ad576113ac6139f8565b5b90506020020160208101906113c29190612e39565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061141e90613951565b91505061138a565b50505050565b60085481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114c16117df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461154e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154590613565565b60405180910390fd5b8060188190555050565b6115606117df565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e490613565565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561165d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611654906134c5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083141561172d576000905061178f565b6000828461173b91906137c2565b905082848261174a9190613791565b1461178a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178190613545565b60405180910390fd5b809150505b92915050565b60006117d783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061268c565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e906135e5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118be906134e5565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119a59190613605565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a19906135a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8990613445565b60405180910390fd5b60008111611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90613585565b60405180910390fd5b611add610f60565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b4b5750611b1b610f60565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f3657601660149054906101000a900460ff16611bda57611b6c610f60565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd090613465565b60405180910390fd5b5b601754811115611c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c16906134a5565b60405180910390fd5b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611cc35750601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf990613505565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611daf5760185481611d6484610d17565b611d6e919061373b565b10611dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da5906135c5565b60405180910390fd5b5b6000611dba30610d17565b9050600060195482101590506017548210611dd55760175491505b808015611def5750601660159054906101000a900460ff16155b8015611e495750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e5f575060168054906101000a900460ff165b8015611eb55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f0b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f3357611f1982612404565b60004790506000811115611f3157611f304761229b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fdd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120905750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561208f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561209e5760009050612225565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121495750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561216157600954600d81905550600a54600e819055505b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561220c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561222457600b54600d81905550600c54600e819055505b5b612231848484846126ef565b50505050565b600083831115829061227f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122769190613423565b60405180910390fd5b506000838561228e919061381c565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6122eb60028461179590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612316573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61236760028461179590919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612392573d6000803e3d6000fd5b5050565b60006006548211156123dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d490613485565b60405180910390fd5b60006123e761271c565b90506123fc818461179590919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561243c5761243b613a27565b5b60405190808252806020026020018201604052801561246a5781602001602082028036833780820191505090505b5090503081600081518110612482576124816139f8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561252457600080fd5b505afa158015612538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061255c9190612e66565b816001815181106125705761256f6139f8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125d730601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117e7565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161263b959493929190613620565b600060405180830381600087803b15801561265557600080fd5b505af1158015612669573d6000803e3d6000fd5b50505050506000601660156101000a81548160ff02191690831515021790555050565b600080831182906126d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ca9190613423565b60405180910390fd5b50600083856126e29190613791565b9050809150509392505050565b806126fd576126fc612747565b5b61270884848461278a565b8061271657612715612955565b5b50505050565b6000806000612729612969565b91509150612740818361179590919063ffffffff16565b9250505090565b6000600d5414801561275b57506000600e54145b1561276557612788565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b60008060008060008061279c876129cb565b9550955095509550955095506127fa86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061288f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128db81612adb565b6128e58483612b98565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129429190613605565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060065490506000683635c9adc5dea00000905061299f683635c9adc5dea0000060065461179590919063ffffffff16565b8210156129be57600654683635c9adc5dea000009350935050506129c7565b81819350935050505b9091565b60008060008060008060008060006129e88a600d54600e54612bd2565b92509250925060006129f861271c565b90506000806000612a0b8e878787612c68565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a7583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612237565b905092915050565b6000808284612a8c919061373b565b905083811015612ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac890613525565b60405180910390fd5b8091505092915050565b6000612ae561271c565b90506000612afc828461171a90919063ffffffff16565b9050612b5081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612bad82600654612a3390919063ffffffff16565b600681905550612bc881600754612a7d90919063ffffffff16565b6007819055505050565b600080600080612bfe6064612bf0888a61171a90919063ffffffff16565b61179590919063ffffffff16565b90506000612c286064612c1a888b61171a90919063ffffffff16565b61179590919063ffffffff16565b90506000612c5182612c43858c612a3390919063ffffffff16565b612a3390919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c81858961171a90919063ffffffff16565b90506000612c98868961171a90919063ffffffff16565b90506000612caf878961171a90919063ffffffff16565b90506000612cd882612cca8587612a3390919063ffffffff16565b612a3390919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612d04612cff846136ba565b613695565b90508083825260208201905082856020860282011115612d2757612d26613a60565b5b60005b85811015612d575781612d3d8882612d61565b845260208401935060208301925050600181019050612d2a565b5050509392505050565b600081359050612d7081613e60565b92915050565b600081519050612d8581613e60565b92915050565b60008083601f840112612da157612da0613a5b565b5b8235905067ffffffffffffffff811115612dbe57612dbd613a56565b5b602083019150836020820283011115612dda57612dd9613a60565b5b9250929050565b600082601f830112612df657612df5613a5b565b5b8135612e06848260208601612cf1565b91505092915050565b600081359050612e1e81613e77565b92915050565b600081359050612e3381613e8e565b92915050565b600060208284031215612e4f57612e4e613a6a565b5b6000612e5d84828501612d61565b91505092915050565b600060208284031215612e7c57612e7b613a6a565b5b6000612e8a84828501612d76565b91505092915050565b60008060408385031215612eaa57612ea9613a6a565b5b6000612eb885828601612d61565b9250506020612ec985828601612d61565b9150509250929050565b600080600060608486031215612eec57612eeb613a6a565b5b6000612efa86828701612d61565b9350506020612f0b86828701612d61565b9250506040612f1c86828701612e24565b9150509250925092565b60008060408385031215612f3d57612f3c613a6a565b5b6000612f4b85828601612d61565b9250506020612f5c85828601612e24565b9150509250929050565b600080600060408486031215612f7f57612f7e613a6a565b5b600084013567ffffffffffffffff811115612f9d57612f9c613a65565b5b612fa986828701612d8b565b93509350506020612fbc86828701612e0f565b9150509250925092565b600060208284031215612fdc57612fdb613a6a565b5b600082013567ffffffffffffffff811115612ffa57612ff9613a65565b5b61300684828501612de1565b91505092915050565b60006020828403121561302557613024613a6a565b5b600061303384828501612e0f565b91505092915050565b60006020828403121561305257613051613a6a565b5b600061306084828501612e24565b91505092915050565b6000806000806080858703121561308357613082613a6a565b5b600061309187828801612e24565b94505060206130a287828801612e24565b93505060406130b387828801612e24565b92505060606130c487828801612e24565b91505092959194509250565b60006130dc83836130e8565b60208301905092915050565b6130f181613850565b82525050565b61310081613850565b82525050565b6000613111826136f6565b61311b8185613719565b9350613126836136e6565b8060005b8381101561315757815161313e88826130d0565b97506131498361370c565b92505060018101905061312a565b5085935050505092915050565b61316d81613862565b82525050565b61317c816138a5565b82525050565b61318b816138b7565b82525050565b600061319c82613701565b6131a6818561372a565b93506131b68185602086016138ed565b6131bf81613a6f565b840191505092915050565b60006131d760238361372a565b91506131e282613a80565b604082019050919050565b60006131fa603f8361372a565b915061320582613acf565b604082019050919050565b600061321d602a8361372a565b915061322882613b1e565b604082019050919050565b6000613240601c8361372a565b915061324b82613b6d565b602082019050919050565b600061326360268361372a565b915061326e82613b96565b604082019050919050565b600061328660228361372a565b915061329182613be5565b604082019050919050565b60006132a960238361372a565b91506132b482613c34565b604082019050919050565b60006132cc601b8361372a565b91506132d782613c83565b602082019050919050565b60006132ef60218361372a565b91506132fa82613cac565b604082019050919050565b600061331260208361372a565b915061331d82613cfb565b602082019050919050565b600061333560298361372a565b915061334082613d24565b604082019050919050565b600061335860258361372a565b915061336382613d73565b604082019050919050565b600061337b60238361372a565b915061338682613dc2565b604082019050919050565b600061339e60248361372a565b91506133a982613e11565b604082019050919050565b6133bd8161388e565b82525050565b6133cc81613898565b82525050565b60006020820190506133e760008301846130f7565b92915050565b60006020820190506134026000830184613164565b92915050565b600060208201905061341d6000830184613173565b92915050565b6000602082019050818103600083015261343d8184613191565b905092915050565b6000602082019050818103600083015261345e816131ca565b9050919050565b6000602082019050818103600083015261347e816131ed565b9050919050565b6000602082019050818103600083015261349e81613210565b9050919050565b600060208201905081810360008301526134be81613233565b9050919050565b600060208201905081810360008301526134de81613256565b9050919050565b600060208201905081810360008301526134fe81613279565b9050919050565b6000602082019050818103600083015261351e8161329c565b9050919050565b6000602082019050818103600083015261353e816132bf565b9050919050565b6000602082019050818103600083015261355e816132e2565b9050919050565b6000602082019050818103600083015261357e81613305565b9050919050565b6000602082019050818103600083015261359e81613328565b9050919050565b600060208201905081810360008301526135be8161334b565b9050919050565b600060208201905081810360008301526135de8161336e565b9050919050565b600060208201905081810360008301526135fe81613391565b9050919050565b600060208201905061361a60008301846133b4565b92915050565b600060a08201905061363560008301886133b4565b6136426020830187613182565b81810360408301526136548186613106565b905061366360608301856130f7565b61367060808301846133b4565b9695505050505050565b600060208201905061368f60008301846133c3565b92915050565b600061369f6136b0565b90506136ab8282613920565b919050565b6000604051905090565b600067ffffffffffffffff8211156136d5576136d4613a27565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006137468261388e565b91506137518361388e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137865761378561399a565b5b828201905092915050565b600061379c8261388e565b91506137a78361388e565b9250826137b7576137b66139c9565b5b828204905092915050565b60006137cd8261388e565b91506137d88361388e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138115761381061399a565b5b828202905092915050565b60006138278261388e565b91506138328361388e565b9250828210156138455761384461399a565b5b828203905092915050565b600061385b8261386e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006138b0826138c9565b9050919050565b60006138c28261388e565b9050919050565b60006138d4826138db565b9050919050565b60006138e68261386e565b9050919050565b60005b8381101561390b5780820151818401526020810190506138f0565b8381111561391a576000848401525b50505050565b61392982613a6f565b810181811067ffffffffffffffff8211171561394857613947613a27565b5b80604052505050565b600061395c8261388e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561398f5761398e61399a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613e6981613850565b8114613e7457600080fd5b50565b613e8081613862565b8114613e8b57600080fd5b50565b613e978161388e565b8114613ea257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bcf682d3cb61e3384d4bfee3dacfbee98bbe6e145293be8919fed3f11b74615464736f6c63430008070033