608060405268056bc75e2d631000006000196200001d91906200072b565b6000196200002c919062000792565b600655600060085560146009556000600a556028600b55600a54600d55600b54600e55600d54600f55600e546010557368c08e3fe17e28b2dd4de9c8bf22182201e54b71601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507368c08e3fe17e28b2dd4de9c8bf22182201e54b71601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066071afd498d000060165566071afd498d00006017556509184e72a0006018553480156200018257600080fd5b50600062000195620006c160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024a620006c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000354919062000837565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e2919062000837565b6040518363ffffffff1660e01b8152600401620004019291906200087a565b6020604051808303816000875af115801562000421573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000447919062000837565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200049d620006c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200064a620006c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d63100000604051620006b29190620008b8565b60405180910390a350620008d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073882620006f2565b91506200074583620006f2565b925082620007585762000757620006fc565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079f82620006f2565b9150620007ac83620006f2565b925082821015620007c257620007c162000763565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007ff82620007d2565b9050919050565b6200081181620007f2565b81146200081d57600080fd5b50565b600081519050620008318162000806565b92915050565b60006020828403121562000850576200084f620007cd565b5b6000620008608482850162000820565b91505092915050565b6200087481620007f2565b82525050565b600060408201905062000891600083018562000869565b620008a0602083018462000869565b9392505050565b620008b281620006f2565b82525050565b6000602082019050620008cf6000830184620008a7565b92915050565b6134db80620008e56000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d157806395d89b411161008a578063a9059cbb11610064578063a9059cbb14610501578063dd62ed3e1461053e578063ea1644d51461057b578063f2fde38b146105a457610171565b806395d89b411461048457806398a5c315146104af578063a2a957bb146104d857610171565b8063715018a61461039a57806374010ece146103b15780637d1db4a5146103da5780638da5cb5b146104055780638f70ccf7146104305780638f9a55c01461045957610171565b80632fd689e3116101235780632fd689e31461029c578063313ce567146102c757806349bd5a5e146102f2578063526e588c1461031d5780636d8aa8f81461033457806370a082311461035d57610171565b806306fdde0314610176578063095ea7b3146101a157806313114a9d146101de5780631694505e1461020957806318160ddd1461023457806323b872dd1461025f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105cd565b60405161019891906125f6565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906126b1565b61060a565b6040516101d5919061270c565b60405180910390f35b3480156101ea57600080fd5b506101f3610628565b6040516102009190612736565b60405180910390f35b34801561021557600080fd5b5061021e61062e565b60405161022b91906127b0565b60405180910390f35b34801561024057600080fd5b50610249610654565b6040516102569190612736565b60405180910390f35b34801561026b57600080fd5b50610286600480360381019061028191906127cb565b610665565b604051610293919061270c565b60405180910390f35b3480156102a857600080fd5b506102b161073e565b6040516102be9190612736565b60405180910390f35b3480156102d357600080fd5b506102dc610744565b6040516102e9919061283a565b60405180910390f35b3480156102fe57600080fd5b5061030761074d565b6040516103149190612864565b60405180910390f35b34801561032957600080fd5b50610332610773565b005b34801561034057600080fd5b5061035b600480360381019061035691906128ab565b61082a565b005b34801561036957600080fd5b50610384600480360381019061037f91906128d8565b6108dc565b6040516103919190612736565b60405180910390f35b3480156103a657600080fd5b506103af61092d565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190612905565b610a80565b005b3480156103e657600080fd5b506103ef610b1f565b6040516103fc9190612736565b60405180910390f35b34801561041157600080fd5b5061041a610b25565b6040516104279190612864565b60405180910390f35b34801561043c57600080fd5b50610457600480360381019061045291906128ab565b610b4e565b005b34801561046557600080fd5b5061046e610c00565b60405161047b9190612736565b60405180910390f35b34801561049057600080fd5b50610499610c06565b6040516104a691906125f6565b60405180910390f35b3480156104bb57600080fd5b506104d660048036038101906104d19190612905565b610c43565b005b3480156104e457600080fd5b506104ff60048036038101906104fa9190612932565b610ce2565b005b34801561050d57600080fd5b50610528600480360381019061052391906126b1565b610e0f565b604051610535919061270c565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190612999565b610e2d565b6040516105729190612736565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190612905565b610eb4565b005b3480156105b057600080fd5b506105cb60048036038101906105c691906128d8565b610f53565b005b60606040518060400160405280600a81526020017f646567656e207065706500000000000000000000000000000000000000000000815250905090565b600061061e610617611114565b848461111c565b6001905092915050565b600c5481565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b60006106728484846112e5565b6107338461067e611114565b61072e8560405180606001604052806028815260200161347e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106e4611114565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a859092919063ffffffff16565b61111c565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61077b611114565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ff90612a25565b60405180910390fd5b68056bc75e2d6310000060168190555068056bc75e2d63100000601781905550565b610832611114565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b690612a25565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b6000610926600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ae9565b9050919050565b610935611114565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b990612a25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a88611114565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0c90612a25565b60405180910390fd5b8060168190555050565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b56611114565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda90612a25565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4445504500000000000000000000000000000000000000000000000000000000815250905090565b610c4b611114565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccf90612a25565b60405180910390fd5b8060188190555050565b610cea611114565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6e90612a25565b60405180910390fd5b8360088190555082600a819055508160098190555080600b81905550600b54600954600a54600854610da99190612a74565b610db39190612a74565b610dbd9190612a74565b600c819055506064600c541115610e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0090612af0565b60405180910390fd5b50505050565b6000610e23610e1c611114565b84846112e5565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ebc611114565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4090612a25565b60405180910390fd5b8060178190555050565b610f5b611114565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf90612a25565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104e90612b82565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290612c14565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f190612ca6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112d89190612736565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b90612d38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ba90612dca565b60405180910390fd5b60008111611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fd90612e5c565b60405180910390fd5b61140e610b25565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561147c575061144c610b25565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561178457601560149054906101000a900460ff1661150b5761149d610b25565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461150a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150190612eee565b60405180910390fd5b5b601654811115611550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154790612f5a565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146115fd57601754816115b2846108dc565b6115bc9190612a74565b106115fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f390612fec565b60405180910390fd5b5b6000611608306108dc565b90506000601854821015905060165482106116235760165491505b80801561163b575060158054906101000a900460ff16155b80156116955750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116ad5750601560169054906101000a900460ff165b80156117035750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117595750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117815761176782611b57565b6000479050600081111561177f5761177e47611dce565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061182b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118de5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118dd5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156118ec5760009050611a73565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119975750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119af57600854600d81905550600954600e819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a5a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a7257600a54600d81905550600b54600e819055505b5b611a7f84848484611e3a565b50505050565b6000838311158290611acd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac491906125f6565b60405180910390fd5b5060008385611adc919061300c565b9050809150509392505050565b6000600654821115611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b27906130b2565b60405180910390fd5b6000611b3a611e67565b9050611b4f8184611e9290919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b8e57611b8d6130d2565b5b604051908082528060200260200182016040528015611bbc5781602001602082028036833780820191505090505b5090503081600081518110611bd457611bd3613101565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9f9190613145565b81600181518110611cb357611cb2613101565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d1a30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461111c565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d7e95949392919061326b565b600060405180830381600087803b158015611d9857600080fd5b505af1158015611dac573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e36573d6000803e3d6000fd5b5050565b80611e4857611e47611edc565b5b611e53848484611f19565b80611e6157611e606120e4565b5b50505050565b6000806000611e746120f8565b91509150611e8b8183611e9290919063ffffffff16565b9250505090565b6000611ed483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061215a565b905092915050565b6000600d54148015611ef057506000600e54145b611f1757600d54600f81905550600e546010819055506000600d819055506002600e819055505b565b600080600080600080611f2b876121bd565b955095509550955095509550611f8986600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061201e85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206a816122cd565b612074848361238a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120d19190612736565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008060006006549050600068056bc75e2d63100000905061212e68056bc75e2d63100000600654611e9290919063ffffffff16565b82101561214d5760065468056bc75e2d63100000935093505050612156565b81819350935050505b9091565b600080831182906121a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219891906125f6565b60405180910390fd5b50600083856121b091906132f4565b9050809150509392505050565b60008060008060008060008060006121da8a600d54600e546123c4565b92509250925060006121ea611e67565b905060008060006121fd8e87878761245a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061226783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a85565b905092915050565b600080828461227e9190612a74565b9050838110156122c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ba90613371565b60405180910390fd5b8091505092915050565b60006122d7611e67565b905060006122ee82846124e390919063ffffffff16565b905061234281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461226f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61239f8260065461222590919063ffffffff16565b6006819055506123ba8160075461226f90919063ffffffff16565b6007819055505050565b6000806000806123f060646123e2888a6124e390919063ffffffff16565b611e9290919063ffffffff16565b9050600061241a606461240c888b6124e390919063ffffffff16565b611e9290919063ffffffff16565b9050600061244382612435858c61222590919063ffffffff16565b61222590919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061247385896124e390919063ffffffff16565b9050600061248a86896124e390919063ffffffff16565b905060006124a187896124e390919063ffffffff16565b905060006124ca826124bc858761222590919063ffffffff16565b61222590919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036124f55760009050612557565b600082846125039190613391565b905082848261251291906132f4565b14612552576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125499061345d565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561259757808201518184015260208101905061257c565b838111156125a6576000848401525b50505050565b6000601f19601f8301169050919050565b60006125c88261255d565b6125d28185612568565b93506125e2818560208601612579565b6125eb816125ac565b840191505092915050565b6000602082019050818103600083015261261081846125bd565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126488261261d565b9050919050565b6126588161263d565b811461266357600080fd5b50565b6000813590506126758161264f565b92915050565b6000819050919050565b61268e8161267b565b811461269957600080fd5b50565b6000813590506126ab81612685565b92915050565b600080604083850312156126c8576126c7612618565b5b60006126d685828601612666565b92505060206126e78582860161269c565b9150509250929050565b60008115159050919050565b612706816126f1565b82525050565b600060208201905061272160008301846126fd565b92915050565b6127308161267b565b82525050565b600060208201905061274b6000830184612727565b92915050565b6000819050919050565b600061277661277161276c8461261d565b612751565b61261d565b9050919050565b60006127888261275b565b9050919050565b600061279a8261277d565b9050919050565b6127aa8161278f565b82525050565b60006020820190506127c560008301846127a1565b92915050565b6000806000606084860312156127e4576127e3612618565b5b60006127f286828701612666565b935050602061280386828701612666565b92505060406128148682870161269c565b9150509250925092565b600060ff82169050919050565b6128348161281e565b82525050565b600060208201905061284f600083018461282b565b92915050565b61285e8161263d565b82525050565b60006020820190506128796000830184612855565b92915050565b612888816126f1565b811461289357600080fd5b50565b6000813590506128a58161287f565b92915050565b6000602082840312156128c1576128c0612618565b5b60006128cf84828501612896565b91505092915050565b6000602082840312156128ee576128ed612618565b5b60006128fc84828501612666565b91505092915050565b60006020828403121561291b5761291a612618565b5b60006129298482850161269c565b91505092915050565b6000806000806080858703121561294c5761294b612618565b5b600061295a8782880161269c565b945050602061296b8782880161269c565b935050604061297c8782880161269c565b925050606061298d8782880161269c565b91505092959194509250565b600080604083850312156129b0576129af612618565b5b60006129be85828601612666565b92505060206129cf85828601612666565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a0f602083612568565b9150612a1a826129d9565b602082019050919050565b60006020820190508181036000830152612a3e81612a02565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a7f8261267b565b9150612a8a8361267b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612abf57612abe612a45565b5b828201905092915050565b50565b6000612ada600083612568565b9150612ae582612aca565b600082019050919050565b60006020820190508181036000830152612b0981612acd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b6c602683612568565b9150612b7782612b10565b604082019050919050565b60006020820190508181036000830152612b9b81612b5f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bfe602483612568565b9150612c0982612ba2565b604082019050919050565b60006020820190508181036000830152612c2d81612bf1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c90602283612568565b9150612c9b82612c34565b604082019050919050565b60006020820190508181036000830152612cbf81612c83565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d22602583612568565b9150612d2d82612cc6565b604082019050919050565b60006020820190508181036000830152612d5181612d15565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612db4602383612568565b9150612dbf82612d58565b604082019050919050565b60006020820190508181036000830152612de381612da7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e46602983612568565b9150612e5182612dea565b604082019050919050565b60006020820190508181036000830152612e7581612e39565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612ed8603f83612568565b9150612ee382612e7c565b604082019050919050565b60006020820190508181036000830152612f0781612ecb565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612f44601c83612568565b9150612f4f82612f0e565b602082019050919050565b60006020820190508181036000830152612f7381612f37565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612fd6602383612568565b9150612fe182612f7a565b604082019050919050565b6000602082019050818103600083015261300581612fc9565b9050919050565b60006130178261267b565b91506130228361267b565b92508282101561303557613034612a45565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061309c602a83612568565b91506130a782613040565b604082019050919050565b600060208201905081810360008301526130cb8161308f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061313f8161264f565b92915050565b60006020828403121561315b5761315a612618565b5b600061316984828501613130565b91505092915050565b6000819050919050565b600061319761319261318d84613172565b612751565b61267b565b9050919050565b6131a78161317c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131e28161263d565b82525050565b60006131f483836131d9565b60208301905092915050565b6000602082019050919050565b6000613218826131ad565b61322281856131b8565b935061322d836131c9565b8060005b8381101561325e57815161324588826131e8565b975061325083613200565b925050600181019050613231565b5085935050505092915050565b600060a0820190506132806000830188612727565b61328d602083018761319e565b818103604083015261329f818661320d565b90506132ae6060830185612855565b6132bb6080830184612727565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132ff8261267b565b915061330a8361267b565b92508261331a576133196132c5565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061335b601b83612568565b915061336682613325565b602082019050919050565b6000602082019050818103600083015261338a8161334e565b9050919050565b600061339c8261267b565b91506133a78361267b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133e0576133df612a45565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613447602183612568565b9150613452826133eb565b604082019050919050565b600060208201905081810360008301526134768161343a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b10d4d29ffd1081e52fdb10e4409bc60f3746e5f44761b83e2babfc9b963eb8564736f6c634300080f0033