60806040526104b0600955620d2f00600a5562ed4e00600b553480156200002557600080fd5b506000620000386200041360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060008060146101000a81548160ff021916908315150217905550600180819055506040518060400160405280600381526020017f504552000000000000000000000000000000000000000000000000000000000081525060029080519060200190620001449291906200041b565b506040518060400160405280600781526020017f5045522049444f0000000000000000000000000000000000000000000000000081525060039080519060200190620001929291906200041b565b506012600460006101000a81548160ff021916908360ff1602179055506a14adf4b7320334b9000000600581905550600554600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620002aa919062000525565b60405180910390a3735498bb86bc934c8d34fda08e81d444153d0d06ad601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073b32bbf4b192f6d17772409e370d1fa64109e9a0090506000819050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000398576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200038f9062000503565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b5442620003e9919062000553565b600c819055506000600d60006101000a81548160ff021916908360ff16021790555050506200069d565b600033905090565b8280546200042990620005ba565b90600052602060002090601f0160209004810192826200044d576000855562000499565b82601f106200046857805160ff191683800117855562000499565b8280016001018555821562000499579182015b82811115620004985782518255916020019190600101906200047b565b5b509050620004a89190620004ac565b5090565b5b80821115620004c7576000816000905550600101620004ad565b5090565b6000620004da60218362000542565b9150620004e7826200064e565b604082019050919050565b620004fd81620005b0565b82525050565b600060208201905081810360008301526200051e81620004cb565b9050919050565b60006020820190506200053c6000830184620004f2565b92915050565b600082825260208201905092915050565b60006200056082620005b0565b91506200056d83620005b0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620005a557620005a4620005f0565b5b828201905092915050565b6000819050919050565b60006002820490506001821680620005d357607f821691505b60208210811415620005ea57620005e96200061f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f546f6b656e20416464726573732063616e6e6f7420626520616464726573732060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b615cdf80620006ad6000396000f3fe60806040526004361061031e5760003560e01c806386989038116101ab578063a9059cbb116100f7578063cc4c27a211610095578063dfbf9def1161006f578063dfbf9def14610b7a578063e74d059f14610bbc578063e8ddf15a14610bf9578063f2fde38b14610c105761032d565b8063cc4c27a214610ae7578063d28d885214610b12578063dd62ed3e14610b3d5761032d565b8063beb66741116100d1578063beb6674114610a4a578063bfb5718d14610a73578063c6d8d65714610a9e578063ca5d088014610ac95761032d565b8063a9059cbb146109a5578063ae169a50146109e2578063b09f126614610a1f5761032d565b80639a7738e0116101645780639ffca9061161013e5780639ffca90614610917578063a457c2d714610942578063a5b31e051461097f578063a6f2ae3a1461099b5761032d565b80639a7738e0146108985780639a8a0592146108c35780639e281a98146108ee5761032d565b806386989038146107865780638980f11f146107b15780638da5cb5b146107da5780638e15f4731461080557806393bbeaa71461083057806395d89b411461086d5761032d565b8063395093511161026a57806363dfe7eb11610223578063715018a6116101fd578063715018a6146106ff5780637ecebe00146107165780638456cb591461075357806385ec4a101461076a5761032d565b806363dfe7eb1461066e578063679aefce1461069757806370a08231146106c25761032d565b806339509351146105915780633f4ba83a146105ce57806351be4324146105e55780635c975abb146106105780635cc5220c1461063b5780635f8e817d146106645761032d565b806320606b70116102d757806330ba0298116102b157806330ba0298146104e7578063313ce5671461051057806332424aa31461053b5780633644e515146105665761032d565b806320606b701461045457806323b872dd1461047f57806330adf81f146104bc5761032d565b806306fdde03146103325780630752881a1461035d578063095ea7b3146103865780631072cbea146103c3578063150b7a02146103ec57806318160ddd146104295761032d565b3661032d5761032b610c39565b005b600080fd5b34801561033e57600080fd5b50610347610d94565b604051610354919061506d565b60405180910390f35b34801561036957600080fd5b50610384600480360381019061037f919061499c565b610e26565b005b34801561039257600080fd5b506103ad60048036038101906103a8919061499c565b610f8c565b6040516103ba9190614f08565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e5919061499c565b610faa565b005b3480156103f857600080fd5b50610413600480360381019061040e9190614919565b611131565b6040516104209190615037565b60405180910390f35b34801561043557600080fd5b5061043e611145565b60405161044b91906152cf565b60405180910390f35b34801561046057600080fd5b5061046961114f565b6040516104769190614f23565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a191906148c6565b611173565b6040516104b39190614f08565b60405180910390f35b3480156104c857600080fd5b506104d161124c565b6040516104de9190614f23565b60405180910390f35b3480156104f357600080fd5b5061050e600480360381019061050991906148c6565b611270565b005b34801561051c57600080fd5b506105256113ae565b604051610532919061534b565b60405180910390f35b34801561054757600080fd5b506105506113c5565b60405161055d919061534b565b60405180910390f35b34801561057257600080fd5b5061057b6113d8565b6040516105889190614f23565b60405180910390f35b34801561059d57600080fd5b506105b860048036038101906105b3919061499c565b61147d565b6040516105c59190614f08565b60405180910390f35b3480156105da57600080fd5b506105e3611530565b005b3480156105f157600080fd5b506105fa6115cf565b60405161060791906152cf565b60405180910390f35b34801561061c57600080fd5b506106256115d5565b6040516106329190614f08565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d91906148c6565b6115eb565b005b61066c611729565b005b34801561067a57600080fd5b50610695600480360381019061069091906147fc565b611881565b005b3480156106a357600080fd5b506106ac611b2f565b6040516106b991906152cf565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190614728565b611ceb565b6040516106f691906152cf565b60405180910390f35b34801561070b57600080fd5b50610714611d34565b005b34801561072257600080fd5b5061073d60048036038101906107389190614728565b611e87565b60405161074a91906152cf565b60405180910390f35b34801561075f57600080fd5b50610768611e9f565b005b610784600480360381019061077f9190614a09565b611f3e565b005b34801561079257600080fd5b5061079b6120ec565b6040516107a8919061534b565b60405180910390f35b3480156107bd57600080fd5b506107d860048036038101906107d3919061499c565b6120ff565b005b3480156107e657600080fd5b506107ef612246565b6040516107fc9190614e8d565b60405180910390f35b34801561081157600080fd5b5061081a61226f565b6040516108279190615052565b60405180910390f35b34801561083c57600080fd5b5061085760048036038101906108529190614728565b61232d565b60405161086491906152cf565b60405180910390f35b34801561087957600080fd5b5061088261234b565b60405161088f919061506d565b60405180910390f35b3480156108a457600080fd5b506108ad6123dd565b6040516108ba91906152cf565b60405180910390f35b3480156108cf57600080fd5b506108d86124d3565b6040516108e591906152cf565b60405180910390f35b3480156108fa57600080fd5b506109156004803603810190610910919061499c565b6124d9565b005b34801561092357600080fd5b5061092c612626565b60405161093991906152cf565b60405180910390f35b34801561094e57600080fd5b506109696004803603810190610964919061499c565b612711565b6040516109769190614f08565b60405180910390f35b61099960048036038101906109949190614a36565b6127de565b005b6109a3610c39565b005b3480156109b157600080fd5b506109cc60048036038101906109c7919061499c565b612ba0565b6040516109d99190614f08565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190614a09565b612bbe565b604051610a169190614f08565b60405180910390f35b348015610a2b57600080fd5b50610a34613699565b604051610a41919061506d565b60405180910390f35b348015610a5657600080fd5b50610a716004803603810190610a6c9190614795565b613727565b005b348015610a7f57600080fd5b50610a88613852565b604051610a9591906152cf565b60405180910390f35b348015610aaa57600080fd5b50610ab3613858565b604051610ac091906152cf565b60405180910390f35b610ad1613997565b604051610ade9190614f08565b60405180910390f35b348015610af357600080fd5b50610afc613ab3565b604051610b0991906152cf565b60405180910390f35b348015610b1e57600080fd5b50610b27613ab9565b604051610b34919061506d565b60405180910390f35b348015610b4957600080fd5b50610b646004803603810190610b5f9190614755565b613b47565b604051610b7191906152cf565b60405180910390f35b348015610b8657600080fd5b50610ba16004803603810190610b9c9190614728565b613bce565b604051610bb3969594939291906152ea565b60405180910390f35b348015610bc857600080fd5b50610be36004803603810190610bde9190614728565b613c2a565b604051610bf09190614f08565b60405180910390f35b348015610c0557600080fd5b50610c0e613c4a565b005b348015610c1c57600080fd5b50610c376004803603810190610c329190614728565b613d48565b005b60003411610c4657600080fd5b6000610c5061226f565b9050600060646305f5e10083610c669190615439565b610c70919061546a565b90506000610c878234613f0a90919063ffffffff16565b905080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610cd891906153e3565b92505081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610d3c929190614edf565b602060405180830381600087803b158015610d5657600080fd5b505af1158015610d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8e91906149dc565b50505050565b606060038054610da3906155e5565b80601f0160208091040260200160405190810160405280929190818152602001828054610dcf906155e5565b8015610e1c5780601f10610df157610100808354040283529160200191610e1c565b820191906000526020600020905b815481529060010190602001808311610dff57829003601f168201915b5050505050905090565b6000606464e8d4a5100083610e3b919061546a565b610e45919061546a565b90508273ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401610e8493929190614ea8565b602060405180830381600087803b158015610e9e57600080fd5b505af1158015610eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed691906149dc565b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610f34929190614edf565b602060405180830381600087803b158015610f4e57600080fd5b505af1158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8691906149dc565b50505050565b6000610fa0610f99613f85565b8484613f8d565b6001905092915050565b610fb2613f85565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110369061526f565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b815260040161109c929190614edf565b602060405180830381600087803b1580156110b657600080fd5b505af11580156110ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ee91906149dc565b61112d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611124906151af565b60405180910390fd5b5050565b600063150b7a0260e01b9050949350505050565b6000600554905090565b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b6000611180848484614158565b6112418461118c613f85565b61123c85604051806060016040528060288152602001615c5d60289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006111f2613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143f19092919063ffffffff16565b613f8d565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b611278613f85565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611305576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fc9061526f565b60405180910390fd5b73e9e7cea3dedca5984780bafc599bd69add087d5673ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff1660e01b815260040161135693929190614ea8565b602060405180830381600087803b15801561137057600080fd5b505af1158015611384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a891906149dc565b50505050565b6000600460009054906101000a900460ff16905090565b600460009054906101000a900460ff1681565b6000804690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611407610d94565b805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001611461959493929190614f9f565b6040516020818303038152906040528051906020012091505090565b600061152661148a613f85565b84611521856007600061149b613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461445590919063ffffffff16565b613f8d565b6001905092915050565b611538613f85565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bc9061526f565b60405180910390fd5b6115cd6144b3565b565b600c5481565b60008060149054906101000a900460ff16905090565b6115f3613f85565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611680576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116779061526f565b60405180910390fd5b7355d398326f99059ff775485246999027b319795573ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff1660e01b81526004016116d193929190614ea8565b602060405180830381600087803b1580156116eb57600080fd5b505af11580156116ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172391906149dc565b50505050565b6000341161173657600080fd5b6000630281a1d09050600060646305f5e100836117539190615439565b61175d919061546a565b905060006117748234613f0a90919063ffffffff16565b905080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117c591906153e3565b92505081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611829929190614edf565b602060405180830381600087803b15801561184357600080fd5b505af1158015611857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187b91906149dc565b50505050565b428510156118c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bb9061518f565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9898989601360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061193a90615648565b919050558a60405160200161195496959493929190614f3e565b60405160208183030381529060405280519060200120905060008282604051602001611981929190614e56565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516119be9493929190614ff2565b6020604051602081039080840390855afa1580156119e0573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611a5457508a73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8a906151ef565b60405180910390fd5b8b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b38b8b6040518363ffffffff1660e01b8152600401611ace929190614edf565b602060405180830381600087803b158015611ae857600080fd5b505af1158015611afc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2091906149dc565b50505050505050505050505050565b60006001151560106000611b41613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611bcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc29061512f565b60405180910390fd5b6000600e6000611bd9613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600e6000611c23613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154611c6b91906154c4565b90506000600e6000611c7b613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015442611cc491906154c4565b9050600082606483611cd6919061546a565b611ce09190615439565b905080935050505090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611d3c613f85565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc09061526f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60136020528060005260406000206000915090505481565b611ea7613f85565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2b9061526f565b60405180910390fd5b611f3c614515565b565b60003411611f4b57600080fd5b6000611f608234613f0a90919063ffffffff16565b90508060066000611f6f612246565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611fb557600080fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461200491906153e3565b9250508190555080600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461207b91906154c4565b925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120e091906152cf565b60405180910390a35050565b600d60009054906101000a900460ff1681565b612107613f85565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218b9061526f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016121ef929190614edf565b602060405180830381600087803b15801561220957600080fd5b505af115801561221d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224191906149dc565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600080600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156122e057600080fd5b505afa1580156122f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123189190614a89565b94509450945094509450839550505050505090565b600f6020528060005260406000206000915090508060000154905081565b60606002805461235a906155e5565b80601f0160208091040260200160405190810160405280929190818152602001828054612386906155e5565b80156123d35780601f106123a8576101008083540402835291602001916123d3565b820191906000526020600020905b8154815290600101906020018083116123b657829003601f168201915b5050505050905090565b600060011515601060006123ef613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514612479576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124709061512f565b60405180910390fd5b600e6000612485613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154426124ce91906154c4565b905090565b60125481565b6124e1613f85565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461256e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125659061526f565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016125ce929190614edf565b602060405180830381600087803b1580156125e857600080fd5b505af11580156125fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262091906149dc565b50505050565b60006001151560106000612638613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146126c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b99061512f565b60405180910390fd5b600e60006126ce613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905090565b60006127d461271e613f85565b846127cf85604051806060016040528060258152602001615c856025913960076000612748613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143f19092919063ffffffff16565b613f8d565b6001905092915050565b6127e6614578565b60008311612829576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612820906150af565b60405180910390fd5b600c54421061286d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128649061510f565b60405180910390fd5b600015156010600061287d613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514612907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fe906150ef565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd61292b613f85565b30866040518463ffffffff1660e01b815260040161294b93929190614ea8565b602060405180830381600087803b15801561296557600080fd5b505af1158015612979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299d91906149dc565b50600d600081819054906101000a900460ff16809291906129bd90615691565b91906101000a81548160ff021916908360ff160217905550506001601060006129e4613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506040518060c001604052804281526020018242612a5291906153e3565b8152602001848152602001600081526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815250600e6000612a90613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050155905050612b4e613f85565b73ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d84604051612b9391906152cf565b60405180910390a2505050565b6000612bb4612bad613f85565b8484614158565b6001905092915050565b60006001151560106000612bd0613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514612c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c519061512f565b60405180910390fd5b6000600e6000612c68613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015414612ce6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cdd9061522f565b60405180910390fd5b6000600e6000612cf4613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015490506000600e6000612d42613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501549050600062093a80821015612d985760069050612d9d565b601990505b60018514156131795742600e6000612db3613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541115612fa1576000612e01611b2f565b90506000606482606460a68660ff1689612e1b919061546a565b612e25919061546a565b612e2f9190615439565b612e39919061546a565b612e439190615439565b905080600e6000612e52613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb612ed4613f85565b836040518363ffffffff1660e01b8152600401612ef2929190614edf565b602060405180830381600087803b158015612f0c57600080fd5b505af1158015612f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4491906149dc565b50612f4d613f85565b73ffffffffffffffffffffffffffffffffffffffff167fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a82604051612f9291906152cf565b60405180910390a25050613174565b42600e6000612fae613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411613173576000606460a68360ff1686613006919061546a565b613010919061546a565b61301a9190615439565b905080600e6000613029613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6130ab613f85565b836040518363ffffffff1660e01b81526004016130c9929190614edf565b602060405180830381600087803b1580156130e357600080fd5b505af11580156130f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061311b91906149dc565b50613124613f85565b73ffffffffffffffffffffffffffffffffffffffff167fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a8260405161316991906152cf565b60405180910390a2505b5b613530565b42600e6000613186613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411156133685760006131d4611b2f565b9050600060648260648560ff16886131ec919061546a565b6131f69190615439565b613200919061546a565b61320a9190615439565b905080600e6000613219613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61329b613f85565b836040518363ffffffff1660e01b81526004016132b9929190614edf565b602060405180830381600087803b1580156132d357600080fd5b505af11580156132e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330b91906149dc565b50613314613f85565b73ffffffffffffffffffffffffffffffffffffffff167fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a8260405161335991906152cf565b60405180910390a2505061352f565b42600e6000613375613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541161352e57600060648260ff16856133cb919061546a565b6133d59190615439565b905080600e60006133e4613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb613466613f85565b836040518363ffffffff1660e01b8152600401613484929190614edf565b602060405180830381600087803b15801561349e57600080fd5b505af11580156134b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134d691906149dc565b506134df613f85565b73ffffffffffffffffffffffffffffffffffffffff167fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a8260405161352491906152cf565b60405180910390a2505b5b5b600e600061353c613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6135bd613f85565b856040518363ffffffff1660e01b81526004016135db929190614edf565b602060405180830381600087803b1580156135f557600080fd5b505af1158015613609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061362d91906149dc565b5060006010600061363c613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019350505050919050565b600280546136a6906155e5565b80601f01602080910402602001604051908101604052809291908181526020018280546136d2906155e5565b801561371f5780601f106136f45761010080835404028352916020019161371f565b820191906000526020600020905b81548152906001019060200180831161370257829003601f168201915b505050505081565b61372f613f85565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146137bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137b39061526f565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff1660e01b81526004016137f993929190614ea8565b602060405180830381600087803b15801561381357600080fd5b505af1158015613827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384b91906149dc565b5050505050565b60095481565b6000600115156010600061386a613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146138f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138eb9061512f565b60405180910390fd5b600e6000613900613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600e600061394a613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461399291906154c4565b905090565b600080682e141ea081ca080000905080600f60006139b3613f85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb613a3a613f85565b836040518363ffffffff1660e01b8152600401613a58929190614edf565b602060405180830381600087803b158015613a7257600080fd5b505af1158015613a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aaa91906149dc565b50600191505090565b600a5481565b60038054613ac6906155e5565b80601f0160208091040260200160405190810160405280929190818152602001828054613af2906155e5565b8015613b3f5780601f10613b1457610100808354040283529160200191613b3f565b820191906000526020600020905b815481529060010190602001808311613b2257829003601f168201915b505050505081565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e6020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050154905086565b60106020528060005260406000206000915054906101000a900460ff1681565b613c52613f85565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cd69061526f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015613d45573d6000803e3d6000fd5b50565b613d50613f85565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613dd49061526f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e449061514f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080831415613f1d5760009050613f7f565b60008284613f2b919061546a565b9050828482613f3a9190615439565b14613f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f719061524f565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ff4906152af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561406d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140649061516f565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161414b91906152cf565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156141c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016141bf9061528f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161422f9061508f565b60405180910390fd5b6142438383836145c2565b6142af81604051806060016040528060268152602001615c3760269139600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546143f19092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061434481600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461445590919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516143e491906152cf565b60405180910390a3505050565b6000838311158290614439576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614430919061506d565b60405180910390fd5b506000838561444891906154c4565b9050809150509392505050565b600080828461446491906153e3565b9050838110156144a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016144a0906151cf565b60405180910390fd5b8091505092915050565b6144bb6145c7565b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6144fe613f85565b60405161450b9190614e8d565b60405180910390a1565b61451d614578565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258614561613f85565b60405161456e9190614e8d565b60405180910390a1565b6145806115d5565b156145c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016145b79061520f565b60405180910390fd5b565b505050565b6145cf6115d5565b61460e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614605906150cf565b60405180910390fd5b565b600061462361461e8461538b565b615366565b90508281526020810184848401111561463f5761463e615786565b5b61464a8482856155a3565b509392505050565b60008135905061466181615b95565b92915050565b60008151905061467681615bac565b92915050565b60008135905061468b81615bc3565b92915050565b600082601f8301126146a6576146a5615781565b5b81356146b6848260208601614610565b91505092915050565b6000815190506146ce81615bda565b92915050565b6000813590506146e381615bf1565b92915050565b6000815190506146f881615bf1565b92915050565b60008135905061470d81615c08565b92915050565b60008151905061472281615c1f565b92915050565b60006020828403121561473e5761473d615790565b5b600061474c84828501614652565b91505092915050565b6000806040838503121561476c5761476b615790565b5b600061477a85828601614652565b925050602061478b85828601614652565b9150509250929050565b600080600080608085870312156147af576147ae615790565b5b60006147bd87828801614652565b94505060206147ce87828801614652565b93505060406147df87828801614652565b92505060606147f0878288016146d4565b91505092959194509250565b60008060008060008060008060006101208a8c03121561481f5761481e615790565b5b600061482d8c828d01614652565b995050602061483e8c828d01614652565b985050604061484f8c828d01614652565b97505060606148608c828d016146d4565b96505060806148718c828d016146d4565b95505060a06148828c828d016146fe565b94505060c06148938c828d0161467c565b93505060e06148a48c828d0161467c565b9250506101006148b68c828d0161467c565b9150509295985092959850929598565b6000806000606084860312156148df576148de615790565b5b60006148ed86828701614652565b93505060206148fe86828701614652565b925050604061490f868287016146d4565b9150509250925092565b6000806000806080858703121561493357614932615790565b5b600061494187828801614652565b945050602061495287828801614652565b9350506040614963878288016146d4565b925050606085013567ffffffffffffffff8111156149845761498361578b565b5b61499087828801614691565b91505092959194509250565b600080604083850312156149b3576149b2615790565b5b60006149c185828601614652565b92505060206149d2858286016146d4565b9150509250929050565b6000602082840312156149f2576149f1615790565b5b6000614a0084828501614667565b91505092915050565b600060208284031215614a1f57614a1e615790565b5b6000614a2d848285016146d4565b91505092915050565b600080600060608486031215614a4f57614a4e615790565b5b6000614a5d868287016146d4565b9350506020614a6e86828701614652565b9250506040614a7f868287016146d4565b9150509250925092565b600080600080600060a08688031215614aa557614aa4615790565b5b6000614ab388828901614713565b9550506020614ac4888289016146bf565b9450506040614ad5888289016146e9565b9350506060614ae6888289016146e9565b9250506080614af788828901614713565b9150509295509295909350565b614b0d816154f8565b82525050565b614b1c8161550a565b82525050565b614b2b81615516565b82525050565b614b42614b3d82615516565b6156bb565b82525050565b614b5181615520565b82525050565b614b608161554c565b82525050565b6000614b71826153bc565b614b7b81856153c7565b9350614b8b8185602086016155b2565b614b9481615795565b840191505092915050565b6000614bac6023836153c7565b9150614bb7826157a6565b604082019050919050565b6000614bcf601e836153c7565b9150614bda826157f5565b602082019050919050565b6000614bf26014836153c7565b9150614bfd8261581e565b602082019050919050565b6000614c156018836153c7565b9150614c2082615847565b602082019050919050565b6000614c38600c836153c7565b9150614c4382615870565b602082019050919050565b6000614c5b6018836153c7565b9150614c6682615899565b602082019050919050565b6000614c7e6026836153c7565b9150614c89826158c2565b604082019050919050565b6000614ca16022836153c7565b9150614cac82615911565b604082019050919050565b6000614cc46018836153c7565b9150614ccf82615960565b602082019050919050565b6000614ce76016836153c7565b9150614cf282615989565b602082019050919050565b6000614d0a6002836153d8565b9150614d15826159b2565b600282019050919050565b6000614d2d601b836153c7565b9150614d38826159db565b602082019050919050565b6000614d506019836153c7565b9150614d5b82615a04565b602082019050919050565b6000614d736010836153c7565b9150614d7e82615a2d565b602082019050919050565b6000614d96600f836153c7565b9150614da182615a56565b602082019050919050565b6000614db96021836153c7565b9150614dc482615a7f565b604082019050919050565b6000614ddc6020836153c7565b9150614de782615ace565b602082019050919050565b6000614dff6025836153c7565b9150614e0a82615af7565b604082019050919050565b6000614e226024836153c7565b9150614e2d82615b46565b604082019050919050565b614e4181615576565b82525050565b614e5081615580565b82525050565b6000614e6182614cfd565b9150614e6d8285614b31565b602082019150614e7d8284614b31565b6020820191508190509392505050565b6000602082019050614ea26000830184614b04565b92915050565b6000606082019050614ebd6000830186614b04565b614eca6020830185614b04565b614ed76040830184614e38565b949350505050565b6000604082019050614ef46000830185614b04565b614f016020830184614e38565b9392505050565b6000602082019050614f1d6000830184614b13565b92915050565b6000602082019050614f386000830184614b22565b92915050565b600060c082019050614f536000830189614b22565b614f606020830188614b04565b614f6d6040830187614b04565b614f7a6060830186614e38565b614f876080830185614e38565b614f9460a0830184614e38565b979650505050505050565b600060a082019050614fb46000830188614b22565b614fc16020830187614b22565b614fce6040830186614b22565b614fdb6060830185614e38565b614fe86080830184614b04565b9695505050505050565b60006080820190506150076000830187614b22565b6150146020830186614e47565b6150216040830185614b22565b61502e6060830184614b22565b95945050505050565b600060208201905061504c6000830184614b48565b92915050565b60006020820190506150676000830184614b57565b92915050565b600060208201905081810360008301526150878184614b66565b905092915050565b600060208201905081810360008301526150a881614b9f565b9050919050565b600060208201905081810360008301526150c881614bc2565b9050919050565b600060208201905081810360008301526150e881614be5565b9050919050565b6000602082019050818103600083015261510881614c08565b9050919050565b6000602082019050818103600083015261512881614c2b565b9050919050565b6000602082019050818103600083015261514881614c4e565b9050919050565b6000602082019050818103600083015261516881614c71565b9050919050565b6000602082019050818103600083015261518881614c94565b9050919050565b600060208201905081810360008301526151a881614cb7565b9050919050565b600060208201905081810360008301526151c881614cda565b9050919050565b600060208201905081810360008301526151e881614d20565b9050919050565b6000602082019050818103600083015261520881614d43565b9050919050565b6000602082019050818103600083015261522881614d66565b9050919050565b6000602082019050818103600083015261524881614d89565b9050919050565b6000602082019050818103600083015261526881614dac565b9050919050565b6000602082019050818103600083015261528881614dcf565b9050919050565b600060208201905081810360008301526152a881614df2565b9050919050565b600060208201905081810360008301526152c881614e15565b9050919050565b60006020820190506152e46000830184614e38565b92915050565b600060c0820190506152ff6000830189614e38565b61530c6020830188614e38565b6153196040830187614e38565b6153266060830186614e38565b6153336080830185614b04565b61534060a0830184614e38565b979650505050505050565b60006020820190506153606000830184614e47565b92915050565b6000615370615381565b905061537c8282615617565b919050565b6000604051905090565b600067ffffffffffffffff8211156153a6576153a5615752565b5b6153af82615795565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b60006153ee82615576565b91506153f983615576565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561542e5761542d6156c5565b5b828201905092915050565b600061544482615576565b915061544f83615576565b92508261545f5761545e6156f4565b5b828204905092915050565b600061547582615576565b915061548083615576565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156154b9576154b86156c5565b5b828202905092915050565b60006154cf82615576565b91506154da83615576565b9250828210156154ed576154ec6156c5565b5b828203905092915050565b600061550382615556565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600069ffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b838110156155d05780820151818401526020810190506155b5565b838111156155df576000848401525b50505050565b600060028204905060018216806155fd57607f821691505b6020821081141561561157615610615723565b5b50919050565b61562082615795565b810181811067ffffffffffffffff8211171561563f5761563e615752565b5b80604052505050565b600061565382615576565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415615686576156856156c5565b5b600182019050919050565b600061569c82615580565b915060ff8214156156b0576156af6156c5565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5374616b6520616d6f756e742073686f756c6420626520636f72726563740000600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f596f7520616c7265616479207061727469636970617465640000000000000000600082015250565b7f506c616e20457870697265640000000000000000000000000000000000000000600082015250565b7f596f7520617265206e6f74207061727469636970617465640000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f5065726d69743a206578706972656420646561646c696e650000000000000000600082015250565b7f546f6b656e207472616e73666572206661696c65642100000000000000000000600082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5065726d69743a20696e76616c6964207369676e617475726500000000000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f416c726561647920636c61696d65640000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b615b9e816154f8565b8114615ba957600080fd5b50565b615bb58161550a565b8114615bc057600080fd5b50565b615bcc81615516565b8114615bd757600080fd5b50565b615be38161554c565b8114615bee57600080fd5b50565b615bfa81615576565b8114615c0557600080fd5b50565b615c1181615580565b8114615c1c57600080fd5b50565b615c288161558d565b8114615c3357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122050c53cb0f3a6db1ce4bac87a6cd99c5672115e6e6c1e29a0568c1b59cecfab4f64736f6c63430008070033