60806040525f60065f6101000a81548160ff021916908315150217905550601460075560146008555f6009555f600a556001600b556001600c556014600d555f600e556008600a6200005291906200060e565b629896806200006291906200065e565b600f556008600a6200007591906200060e565b629896806200008591906200065e565b6010556008600a6200009891906200060e565b620f4240620000a891906200065e565b6011556008600a620000bb91906200060e565b62989680620000cb91906200065e565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550600260165534801562000113575f80fd5b505f620001256200044e60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d16200044e60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a6200022191906200060e565b633b9aca006200023291906200065e565b60015f620002456200044e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002976200045560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003c26200044e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a6200042091906200060e565b633b9aca006200043191906200065e565b604051620004409190620006b9565b60405180910390a3620006d4565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050657808604811115620004de57620004dd6200047c565b5b6001851615620004ee5780820291505b8081029050620004fe85620004a9565b9450620004be565b94509492505050565b5f82620005205760019050620005f2565b816200052f575f9050620005f2565b8160018114620005485760028114620005535762000589565b6001915050620005f2565b60ff8411156200056857620005676200047c565b5b8360020a9150848211156200058257620005816200047c565b5b50620005f2565b5060208310610133831016604e8410600b8410161715620005c35782820a905083811115620005bd57620005bc6200047c565b5b620005f2565b620005d28484846001620004b5565b92509050818404811115620005ec57620005eb6200047c565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061a82620005f9565b9150620006278362000602565b9250620006567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200050f565b905092915050565b5f6200066a82620005f9565b91506200067783620005f9565b92508282026200068781620005f9565b91508282048414831517620006a157620006a06200047c565b5b5092915050565b620006b381620005f9565b82525050565b5f602082019050620006ce5f830184620006a8565b92915050565b6133b580620006e25f395ff3fe608060405260043610610143575f3560e01c806370a08231116100b557806392e90c751161006e57806392e90c751461042057806395d89b411461044a5780639b00ea4214610474578063a9059cbb1461049e578063c9567bf9146104da578063dd62ed3e146104f05761014a565b806370a0823114610326578063715018a6146103625780637830b0721461037857806380e4cebf146103a2578063813a3042146103cc5780638da5cb5b146103f65761014a565b80632a3b2aac116101075780632a3b2aac14610256578063313ce5671461027e5780634a7657b0146102a85780635c85974f146102be5780636c0a24eb146102e65780636f616f99146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630b2dc07d146101b457806318160ddd146101f057806323b872dd1461021a5761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261052c565b60405161016f9190612450565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612501565b610569565b6040516101ab9190612559565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d59190612572565b610586565b6040516101e79190612559565b60405180910390f35b3480156101fb575f80fd5b506102046105d8565b60405161021191906125ac565b60405180910390f35b348015610225575f80fd5b50610240600480360381019061023b91906125c5565b6105fb565b60405161024d9190612559565b60405180910390f35b348015610261575f80fd5b5061027c6004803603810190610277919061263f565b6106cf565b005b348015610289575f80fd5b506102926107bb565b60405161029f9190612698565b60405180910390f35b3480156102b3575f80fd5b506102bc6107c3565b005b3480156102c9575f80fd5b506102e460048036038101906102df91906126b1565b61090b565b005b3480156102f1575f80fd5b506102fa6109a9565b60405161030791906125ac565b60405180910390f35b34801561031b575f80fd5b506103246109af565b005b348015610331575f80fd5b5061034c60048036038101906103479190612572565b610a47565b60405161035991906125ac565b60405180910390f35b34801561036d575f80fd5b50610376610a8d565b005b348015610383575f80fd5b5061038c610bdb565b60405161039991906125ac565b60405180910390f35b3480156103ad575f80fd5b506103b6610be1565b6040516103c391906125ac565b60405180910390f35b3480156103d7575f80fd5b506103e0610be7565b6040516103ed9190612559565b60405180910390f35b348015610401575f80fd5b5061040a610bf9565b60405161041791906126eb565b60405180910390f35b34801561042b575f80fd5b50610434610c20565b60405161044191906125ac565b60405180910390f35b348015610455575f80fd5b5061045e610c26565b60405161046b9190612450565b60405180910390f35b34801561047f575f80fd5b50610488610c63565b60405161049591906125ac565b60405180910390f35b3480156104a9575f80fd5b506104c460048036038101906104bf9190612501565b610c69565b6040516104d19190612559565b60405180910390f35b3480156104e5575f80fd5b506104ee610c86565b005b3480156104fb575f80fd5b5061051660048036038101906105119190612704565b6111a5565b60405161052391906125ac565b60405180910390f35b60606040518060400160405280601281526020017f464c4f4b492056494c474552444152534f4e0000000000000000000000000000815250905090565b5f61057c610575611227565b848461122e565b6001905092915050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f6008600a6105e7919061289e565b633b9aca006105f691906128e8565b905090565b5f6106078484846113f1565b6106c484610613611227565b6106bf856040518060600160405280602881526020016133586028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610676611227565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e849092919063ffffffff16565b61122e565b600190509392505050565b6106d7611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075a90612973565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f6008905090565b6107cb611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084e90612973565b60405180910390fd5b6008600a610865919061289e565b633b9aca0061087491906128e8565b600f819055506008600a610888919061289e565b633b9aca0061089791906128e8565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6108e5919061289e565b633b9aca006108f491906128e8565b60405161090191906125ac565b60405180910390a1565b610913611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099690612973565b60405180910390fd5b8060168190555050565b60105481565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109f0611227565b73ffffffffffffffffffffffffffffffffffffffff1614610a0f575f80fd5b5f610a1930610a47565b90505f811115610a2d57610a2c81611ee6565b5b5f4790505f811115610a4357610a428161216d565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a95611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890612973565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b60115481565b60065f9054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f464c4f4b49000000000000000000000000000000000000000000000000000000815250905090565b60165481565b5f610c7c610c75611227565b84846113f1565b6001905092915050565b610c8e611227565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1190612973565b60405180910390fd5b60148054906101000a900460ff1615610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f906129db565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e043060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610df0919061289e565b633b9aca00610dff91906128e8565b61122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e6e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e929190612a0d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3c9190612a0d565b6040518363ffffffff1660e01b8152600401610f59929190612a38565b6020604051808303815f875af1158015610f75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f999190612a0d565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102030610a47565b5f8061102a610bf9565b426040518863ffffffff1660e01b815260040161104c96959493929190612aa1565b60606040518083038185885af1158015611068573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061108d9190612b14565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161112d929190612b64565b6020604051808303815f875af1158015611149573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116d9190612b9f565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129390612c3a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612cc8565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e491906125ac565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612d56565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c490612de4565b60405180910390fd5b5f811161150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690612e72565b60405180910390fd5b5f611518610bf9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115865750611556610bf9565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bd45760065f9054906101000a900460ff16156117115760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611649575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611710574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612f00565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117ba575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561180d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118e657600f54821115611857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184e90612f68565b60405180910390fd5b6010548261186485610a47565b61186e9190612f86565b11156118af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a690613003565b60405180910390fd5b600d54600e5410156118ce576118c4836121d6565b156118cd575f80fd5b5b600e5f8154809291906118e090613021565b91905055505b6119226064611914600b54600e541161190157600754611905565b6009545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ac57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a3557600f548211156119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed90612f68565b60405180910390fd5b611a326064611a24600c54600e5411611a1157600854611a15565b600a545b856121e790919063ffffffff16565b61225e90919063ffffffff16565b90505b5f611a3f30610a47565b9050601460159054906101000a900460ff16158015611aaa575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ac25750601460169054906101000a900460ff165b8015611acf575060115481115b8015611ade5750600d54600e54115b8015611b37575060165460155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f2054105b15611bd257611b59611b5484611b4f846012546122a7565b6122a7565b611ee6565b5f4790505f811115611b6f57611b6e4761216d565b5b60155f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f4381526020019081526020015f205f815480929190611bcb90613021565b9190505550505b505b5f811115611cd357611c2c8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cca91906125ac565b60405180910390a35b611d238260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dc6611d7a828461231c90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122bf90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e69848661231c90919063ffffffff16565b604051611e7691906125ac565b60405180910390a350505050565b5f838311158290611ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec29190612450565b60405180910390fd5b505f8385611ed99190613068565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121505760148054906101000a900460ff1615612150575f600267ffffffffffffffff811115611f3857611f3761309b565b5b604051908082528060200260200182016040528015611f665781602001602082028036833780820191505090505b50905030815f81518110611f7d57611f7c6130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612021573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120459190612a0d565b81600181518110612059576120586130c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120bf3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461122e565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121219594939291906131ac565b5f604051808303815f87803b158015612138575f80fd5b505af115801561214a573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121d2573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036121f7575f9050612258565b5f828461220491906128e8565b90508284826122139190613231565b14612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a906132d1565b60405180910390fd5b809150505b92915050565b5f61229f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612365565b905092915050565b5f8183116122b557826122b7565b815b905092915050565b5f8082846122cd9190612f86565b905083811015612312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230990613339565b60405180910390fd5b8091505092915050565b5f61235d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e84565b905092915050565b5f80831182906123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a29190612450565b60405180910390fd5b505f83856123b99190613231565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123fd5780820151818401526020810190506123e2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612422826123c6565b61242c81856123d0565b935061243c8185602086016123e0565b61244581612408565b840191505092915050565b5f6020820190508181035f8301526124688184612418565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61249d82612474565b9050919050565b6124ad81612493565b81146124b7575f80fd5b50565b5f813590506124c8816124a4565b92915050565b5f819050919050565b6124e0816124ce565b81146124ea575f80fd5b50565b5f813590506124fb816124d7565b92915050565b5f806040838503121561251757612516612470565b5b5f612524858286016124ba565b9250506020612535858286016124ed565b9150509250929050565b5f8115159050919050565b6125538161253f565b82525050565b5f60208201905061256c5f83018461254a565b92915050565b5f6020828403121561258757612586612470565b5b5f612594848285016124ba565b91505092915050565b6125a6816124ce565b82525050565b5f6020820190506125bf5f83018461259d565b92915050565b5f805f606084860312156125dc576125db612470565b5b5f6125e9868287016124ba565b93505060206125fa868287016124ba565b925050604061260b868287016124ed565b9150509250925092565b61261e8161253f565b8114612628575f80fd5b50565b5f8135905061263981612615565b92915050565b5f806040838503121561265557612654612470565b5b5f612662858286016124ba565b92505060206126738582860161262b565b9150509250929050565b5f60ff82169050919050565b6126928161267d565b82525050565b5f6020820190506126ab5f830184612689565b92915050565b5f602082840312156126c6576126c5612470565b5b5f6126d3848285016124ed565b91505092915050565b6126e581612493565b82525050565b5f6020820190506126fe5f8301846126dc565b92915050565b5f806040838503121561271a57612719612470565b5b5f612727858286016124ba565b9250506020612738858286016124ba565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156127c4578086048111156127a05761279f612742565b5b60018516156127af5780820291505b80810290506127bd8561276f565b9450612784565b94509492505050565b5f826127dc5760019050612897565b816127e9575f9050612897565b81600181146127ff576002811461280957612838565b6001915050612897565b60ff84111561281b5761281a612742565b5b8360020a91508482111561283257612831612742565b5b50612897565b5060208310610133831016604e8410600b841016171561286d5782820a90508381111561286857612867612742565b5b612897565b61287a848484600161277b565b9250905081840481111561289157612890612742565b5b81810290505b9392505050565b5f6128a8826124ce565b91506128b38361267d565b92506128e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127cd565b905092915050565b5f6128f2826124ce565b91506128fd836124ce565b925082820261290b816124ce565b9150828204841483151761292257612921612742565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61295d6020836123d0565b915061296882612929565b602082019050919050565b5f6020820190508181035f83015261298a81612951565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129c56017836123d0565b91506129d082612991565b602082019050919050565b5f6020820190508181035f8301526129f2816129b9565b9050919050565b5f81519050612a07816124a4565b92915050565b5f60208284031215612a2257612a21612470565b5b5f612a2f848285016129f9565b91505092915050565b5f604082019050612a4b5f8301856126dc565b612a5860208301846126dc565b9392505050565b5f819050919050565b5f819050919050565b5f612a8b612a86612a8184612a5f565b612a68565b6124ce565b9050919050565b612a9b81612a71565b82525050565b5f60c082019050612ab45f8301896126dc565b612ac1602083018861259d565b612ace6040830187612a92565b612adb6060830186612a92565b612ae860808301856126dc565b612af560a083018461259d565b979650505050505050565b5f81519050612b0e816124d7565b92915050565b5f805f60608486031215612b2b57612b2a612470565b5b5f612b3886828701612b00565b9350506020612b4986828701612b00565b9250506040612b5a86828701612b00565b9150509250925092565b5f604082019050612b775f8301856126dc565b612b84602083018461259d565b9392505050565b5f81519050612b9981612615565b92915050565b5f60208284031215612bb457612bb3612470565b5b5f612bc184828501612b8b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c246024836123d0565b9150612c2f82612bca565b604082019050919050565b5f6020820190508181035f830152612c5181612c18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cb26022836123d0565b9150612cbd82612c58565b604082019050919050565b5f6020820190508181035f830152612cdf81612ca6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d406025836123d0565b9150612d4b82612ce6565b604082019050919050565b5f6020820190508181035f830152612d6d81612d34565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612dce6023836123d0565b9150612dd982612d74565b604082019050919050565b5f6020820190508181035f830152612dfb81612dc2565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e5c6029836123d0565b9150612e6782612e02565b604082019050919050565b5f6020820190508181035f830152612e8981612e50565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612eea6024836123d0565b9150612ef582612e90565b604082019050919050565b5f6020820190508181035f830152612f1781612ede565b9050919050565b7f4578636565647320746865205f6d617854782e000000000000000000000000005f82015250565b5f612f526013836123d0565b9150612f5d82612f1e565b602082019050919050565b5f6020820190508181035f830152612f7f81612f46565b9050919050565b5f612f90826124ce565b9150612f9b836124ce565b9250828201905080821115612fb357612fb2612742565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fed601a836123d0565b9150612ff882612fb9565b602082019050919050565b5f6020820190508181035f83015261301a81612fe1565b9050919050565b5f61302b826124ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361305d5761305c612742565b5b600182019050919050565b5f613072826124ce565b915061307d836124ce565b925082820390508181111561309557613094612742565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61312781612493565b82525050565b5f613138838361311e565b60208301905092915050565b5f602082019050919050565b5f61315a826130f5565b61316481856130ff565b935061316f8361310f565b805f5b8381101561319f578151613186888261312d565b975061319183613144565b925050600181019050613172565b5085935050505092915050565b5f60a0820190506131bf5f83018861259d565b6131cc6020830187612a92565b81810360408301526131de8186613150565b90506131ed60608301856126dc565b6131fa608083018461259d565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61323b826124ce565b9150613246836124ce565b92508261325657613255613204565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132bb6021836123d0565b91506132c682613261565b604082019050919050565b5f6020820190508181035f8301526132e8816132af565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613323601b836123d0565b915061332e826132ef565b602082019050919050565b5f6020820190508181035f83015261335081613317565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e09510e4f38d2c1fe8014ce9d707793391115b39ae124e0ba0c390dac7a6858864736f6c63430008140033