60806040526032600655603260075560146009556014600a556001600b556001600c5560c8600d5560c8600e5560c8600f555f6010556009600a6200004591906200064c565b6201d4c06200005591906200069c565b6011556009600a6200006891906200064c565b62020f586200007891906200069c565b6012556009600a6200008b91906200064c565b61b7986200009a91906200069c565b6013556009600a620000ad91906200064c565b62072bf0620000bd91906200069c565b6014555f601660156101000a81548160ff0219169083151502179055505f6016806101000a81548160ff021916908315150217905550348015620000ff575f80fd5b505f620001116200048c60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001bd6200048c60201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073653e76251e58e516ace7b1c51755050f7be8edb360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200026091906200064c565b6302cd29c06200027191906200069c565b60015f620002846200048c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002d66200049360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004006200048c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200045e91906200064c565b6302cd29c06200046f91906200069c565b6040516200047e9190620006f7565b60405180910390a362000712565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000544578086048111156200051c576200051b620004ba565b5b60018516156200052c5780820291505b80810290506200053c85620004e7565b9450620004fc565b94509492505050565b5f826200055e576001905062000630565b816200056d575f905062000630565b81600181146200058657600281146200059157620005c7565b600191505062000630565b60ff841115620005a657620005a5620004ba565b5b8360020a915084821115620005c057620005bf620004ba565b5b5062000630565b5060208310610133831016604e8410600b8410161715620006015782820a905083811115620005fb57620005fa620004ba565b5b62000630565b620006108484846001620004f3565b925090508184048111156200062a5762000629620004ba565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006588262000637565b9150620006658362000640565b9250620006947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200054d565b905092915050565b5f620006a88262000637565b9150620006b58362000637565b9250828202620006c58162000637565b91508282048414831517620006df57620006de620004ba565b5b5092915050565b620006f18162000637565b82525050565b5f6020820190506200070c5f830184620006e6565b92915050565b61336580620007205f395ff3fe608060405260043610610138575f3560e01c806377b54bad116100aa578063a9059cbb1161006e578063a9059cbb146103db578063bf474bed14610417578063c9567bf914610441578063dd62ed3e14610457578063f429389014610493578063facbcefa146104a95761013f565b806377b54bad146102f75780637d1db4a5146103335780638da5cb5b1461035d5780638f9a55c01461038757806395d89b41146103b15761013f565b8063313ce567116100fc578063313ce56714610239578063367707d61461026357806351bc3c851461027957806370a082311461028f578063715018a6146102cb578063751039fc146102e15761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104bf565b60405161016491906123d9565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e919061248a565b6104fc565b6040516101a091906124e2565b60405180910390f35b3480156101b4575f80fd5b506101bd610519565b6040516101ca919061250a565b60405180910390f35b3480156101de575f80fd5b506101e761051f565b6040516101f4919061250a565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612523565b610542565b60405161023091906124e2565b60405180910390f35b348015610244575f80fd5b5061024d610616565b60405161025a919061258e565b60405180910390f35b34801561026e575f80fd5b5061027761061e565b005b348015610284575f80fd5b5061028d6106bb565b005b34801561029a575f80fd5b506102b560048036038101906102b091906125a7565b6106f3565b6040516102c2919061250a565b60405180910390f35b3480156102d6575f80fd5b506102df610739565b005b3480156102ec575f80fd5b506102f5610887565b005b348015610302575f80fd5b5061031d6004803603810190610318919061248a565b6109b6565b60405161032a91906124e2565b60405180910390f35b34801561033e575f80fd5b50610347610b16565b604051610354919061250a565b60405180910390f35b348015610368575f80fd5b50610371610b1c565b60405161037e91906125e1565b60405180910390f35b348015610392575f80fd5b5061039b610b43565b6040516103a8919061250a565b60405180910390f35b3480156103bc575f80fd5b506103c5610b49565b6040516103d291906123d9565b60405180910390f35b3480156103e6575f80fd5b5061040160048036038101906103fc919061248a565b610b86565b60405161040e91906124e2565b60405180910390f35b348015610422575f80fd5b5061042b610ba3565b604051610438919061250a565b60405180910390f35b34801561044c575f80fd5b50610455610ba9565b005b348015610462575f80fd5b5061047d600480360381019061047891906125fa565b6110d1565b60405161048a919061250a565b60405180910390f35b34801561049e575f80fd5b506104a7611153565b005b3480156104b4575f80fd5b506104bd611201565b005b60606040518060400160405280601581526020017f4d616b65416d65726963614261736564416761696e0000000000000000000000815250905090565b5f61050f6105086112a7565b84846112ae565b6001905092915050565b60145481565b5f6009600a61052e9190612794565b6302cd29c061053d91906127de565b905090565b5f61054e848484611471565b61060b8461055a6112a7565b610606856040518060600160405280602881526020016133086028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105bd6112a7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d899092919063ffffffff16565b6112ae565b600190509392505050565b5f6009905090565b6106266112a7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a990612869565b60405180910390fd5b5f600f81905550565b5f6106c5306106f3565b90505f8111156106d9576106d881611deb565b5b5f4790505f8111156106ef576106ee81612056565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107416112a7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c490612869565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61088f6112a7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091290612869565b60405180910390fd5b6009600a6109299190612794565b6302cd29c061093891906127de565b6011819055506009600a61094c9190612794565b6302cd29c061095b91906127de565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109909190612794565b6302cd29c061099f91906127de565b6040516109ac919061250a565b60405180910390a1565b5f808203610a39578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109f791906125e1565b602060405180830381865afa158015610a12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a36919061289b565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610a6a9291906128c6565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610ace929190612948565b6020604051808303815f875af1158015610aea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0e9190612999565b905092915050565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600481526020017f4d41424100000000000000000000000000000000000000000000000000000000815250905090565b5f610b99610b926112a7565b8484611471565b6001905092915050565b60135481565b610bb16112a7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490612869565b60405180910390fd5b601660149054906101000a900460ff1615610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8490612a0e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d293060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d159190612794565b6302cd29c0610d2491906127de565b6112ae565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d93573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db79190612a40565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e619190612a40565b6040518363ffffffff1660e01b8152600401610e7e929190612a6b565b6020604051808303815f875af1158015610e9a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebe9190612a40565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f45306106f3565b5f80610f4f610b1c565b426040518863ffffffff1660e01b8152600401610f7196959493929190612acb565b60606040518083038185885af1158015610f8d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fb29190612b2a565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110529291906128c6565b6020604051808303815f875af115801561106e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110929190612999565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555043600881905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f4711611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118c90612bea565b60405180910390fd5b5f47905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156111fd573d5f803e3d5ffd5b5050565b6112096112a7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128c90612869565b60405180910390fd5b6002600a819055506001600981905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361131c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131390612c78565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190612d06565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611464919061250a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d690612d94565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361154d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154490612e22565b60405180910390fd5b5f811161158f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158690612eb0565b60405180910390fd5b5f611598610b1c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561160657506115d6610b1c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ad9576116476064611639600d54601054116116265760095461162a565b600b545b8561215f90919063ffffffff16565b6121d690919063ffffffff16565b905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116f2575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611745575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118285760115482111561178f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178690612f18565b60405180910390fd5b6012548261179c856106f3565b6117a69190612f36565b11156117e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117de90612fb3565b60405180910390fd5b4360036008546117f79190612f36565b1115611810576118068361221f565b1561180f575f80fd5b5b60105f81548092919061182290612fd1565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118cc575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561192a57601254826118de856106f3565b6118e89190612f36565b1115611929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192090612fb3565b60405180910390fd5b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119b257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119f6576119f360646119e5600e54601054116119d257600a546119d6565b600c545b8561215f90919063ffffffff16565b6121d690919063ffffffff16565b90505b5f611a00306106f3565b9050601660159054906101000a900460ff16158015611a6b575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a81575060168054906101000a900460ff165b8015611a8e575060135481115b8015611a9d5750600f54601054115b15611ad757611abf611aba84611ab584601454612230565b612230565b611deb565b5f4790505f811115611ad557611ad447612056565b5b505b505b5f811115611bd857611b318160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461224890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bcf919061250a565b60405180910390a35b611c288260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122a590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ccb611c7f82846122a590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461224890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d6e84866122a590919063ffffffff16565b604051611d7b919061250a565b60405180910390a350505050565b5f838311158290611dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc791906123d9565b60405180910390fd5b505f8385611dde9190613018565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e2257611e2161304b565b5b604051908082528060200260200182016040528015611e505781602001602082028036833780820191505090505b50905030815f81518110611e6757611e66613078565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f2f9190612a40565b81600181518110611f4357611f42613078565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fa93060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ae565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161200b95949392919061315c565b5f604051808303815f87803b158015612022575f80fd5b505af1158015612034573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b5f60646006548361206791906127de565b61207191906131e1565b90505f60646007548461208491906127de565b61208e91906131e1565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156120f4573d5f803e3d5ffd5b5060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612159573d5f803e3d5ffd5b50505050565b5f80830361216f575f90506121d0565b5f828461217c91906127de565b905082848261218b91906131e1565b146121cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c290613281565b60405180910390fd5b809150505b92915050565b5f61221783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ee565b905092915050565b5f80823b90505f8111915050919050565b5f81831161223e5782612240565b815b905092915050565b5f8082846122569190612f36565b90508381101561229b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612292906132e9565b60405180910390fd5b8091505092915050565b5f6122e683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d89565b905092915050565b5f8083118290612334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232b91906123d9565b60405180910390fd5b505f838561234291906131e1565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561238657808201518184015260208101905061236b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123ab8261234f565b6123b58185612359565b93506123c5818560208601612369565b6123ce81612391565b840191505092915050565b5f6020820190508181035f8301526123f181846123a1565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612426826123fd565b9050919050565b6124368161241c565b8114612440575f80fd5b50565b5f813590506124518161242d565b92915050565b5f819050919050565b61246981612457565b8114612473575f80fd5b50565b5f8135905061248481612460565b92915050565b5f80604083850312156124a05761249f6123f9565b5b5f6124ad85828601612443565b92505060206124be85828601612476565b9150509250929050565b5f8115159050919050565b6124dc816124c8565b82525050565b5f6020820190506124f55f8301846124d3565b92915050565b61250481612457565b82525050565b5f60208201905061251d5f8301846124fb565b92915050565b5f805f6060848603121561253a576125396123f9565b5b5f61254786828701612443565b935050602061255886828701612443565b925050604061256986828701612476565b9150509250925092565b5f60ff82169050919050565b61258881612573565b82525050565b5f6020820190506125a15f83018461257f565b92915050565b5f602082840312156125bc576125bb6123f9565b5b5f6125c984828501612443565b91505092915050565b6125db8161241c565b82525050565b5f6020820190506125f45f8301846125d2565b92915050565b5f80604083850312156126105761260f6123f9565b5b5f61261d85828601612443565b925050602061262e85828601612443565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126ba5780860481111561269657612695612638565b5b60018516156126a55780820291505b80810290506126b385612665565b945061267a565b94509492505050565b5f826126d2576001905061278d565b816126df575f905061278d565b81600181146126f557600281146126ff5761272e565b600191505061278d565b60ff84111561271157612710612638565b5b8360020a91508482111561272857612727612638565b5b5061278d565b5060208310610133831016604e8410600b84101617156127635782820a90508381111561275e5761275d612638565b5b61278d565b6127708484846001612671565b9250905081840481111561278757612786612638565b5b81810290505b9392505050565b5f61279e82612457565b91506127a983612573565b92506127d67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126c3565b905092915050565b5f6127e882612457565b91506127f383612457565b925082820261280181612457565b9150828204841483151761281857612817612638565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612853602083612359565b915061285e8261281f565b602082019050919050565b5f6020820190508181035f83015261288081612847565b9050919050565b5f8151905061289581612460565b92915050565b5f602082840312156128b0576128af6123f9565b5b5f6128bd84828501612887565b91505092915050565b5f6040820190506128d95f8301856125d2565b6128e660208301846124fb565b9392505050565b5f819050919050565b5f61291061290b612906846123fd565b6128ed565b6123fd565b9050919050565b5f612921826128f6565b9050919050565b5f61293282612917565b9050919050565b61294281612928565b82525050565b5f60408201905061295b5f830185612939565b61296860208301846124fb565b9392505050565b612978816124c8565b8114612982575f80fd5b50565b5f815190506129938161296f565b92915050565b5f602082840312156129ae576129ad6123f9565b5b5f6129bb84828501612985565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129f8601783612359565b9150612a03826129c4565b602082019050919050565b5f6020820190508181035f830152612a25816129ec565b9050919050565b5f81519050612a3a8161242d565b92915050565b5f60208284031215612a5557612a546123f9565b5b5f612a6284828501612a2c565b91505092915050565b5f604082019050612a7e5f8301856125d2565b612a8b60208301846125d2565b9392505050565b5f819050919050565b5f612ab5612ab0612aab84612a92565b6128ed565b612457565b9050919050565b612ac581612a9b565b82525050565b5f60c082019050612ade5f8301896125d2565b612aeb60208301886124fb565b612af86040830187612abc565b612b056060830186612abc565b612b1260808301856125d2565b612b1f60a08301846124fb565b979650505050505050565b5f805f60608486031215612b4157612b406123f9565b5b5f612b4e86828701612887565b9350506020612b5f86828701612887565b9250506040612b7086828701612887565b9150509250925092565b7f436f6e74726163742062616c616e6365206d75737420626520677265617465725f8201527f207468616e207a65726f00000000000000000000000000000000000000000000602082015250565b5f612bd4602a83612359565b9150612bdf82612b7a565b604082019050919050565b5f6020820190508181035f830152612c0181612bc8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612c62602483612359565b9150612c6d82612c08565b604082019050919050565b5f6020820190508181035f830152612c8f81612c56565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cf0602283612359565b9150612cfb82612c96565b604082019050919050565b5f6020820190508181035f830152612d1d81612ce4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612d7e602583612359565b9150612d8982612d24565b604082019050919050565b5f6020820190508181035f830152612dab81612d72565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e0c602383612359565b9150612e1782612db2565b604082019050919050565b5f6020820190508181035f830152612e3981612e00565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e9a602983612359565b9150612ea582612e40565b604082019050919050565b5f6020820190508181035f830152612ec781612e8e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f02601983612359565b9150612f0d82612ece565b602082019050919050565b5f6020820190508181035f830152612f2f81612ef6565b9050919050565b5f612f4082612457565b9150612f4b83612457565b9250828201905080821115612f6357612f62612638565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612f9d601a83612359565b9150612fa882612f69565b602082019050919050565b5f6020820190508181035f830152612fca81612f91565b9050919050565b5f612fdb82612457565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361300d5761300c612638565b5b600182019050919050565b5f61302282612457565b915061302d83612457565b925082820390508181111561304557613044612638565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130d78161241c565b82525050565b5f6130e883836130ce565b60208301905092915050565b5f602082019050919050565b5f61310a826130a5565b61311481856130af565b935061311f836130bf565b805f5b8381101561314f57815161313688826130dd565b9750613141836130f4565b925050600181019050613122565b5085935050505092915050565b5f60a08201905061316f5f8301886124fb565b61317c6020830187612abc565b818103604083015261318e8186613100565b905061319d60608301856125d2565b6131aa60808301846124fb565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131eb82612457565b91506131f683612457565b925082613206576132056131b4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61326b602183612359565b915061327682613211565b604082019050919050565b5f6020820190508181035f8301526132988161325f565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132d3601b83612359565b91506132de8261329f565b602082019050919050565b5f6020820190508181035f830152613300816132c7565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cb124a7bf1df4de6d32e808137da162601387a69cd27c0ed91522850d8f9b27264736f6c63430008140033