60806040523480156200001157600080fd5b506040518060400160405280601981526020017f4861796c69204e465420546f6b656e73202842657461203129000000000000008152506040518060400160405280600581526020017f4841594c49000000000000000000000000000000000000000000000000000000815250816000908051906020019062000096929190620001a6565b508060019080519060200190620000af929190620001a6565b505050620000d2620000c6620000d860201b60201c565b620000e060201b60201c565b620002bb565b600033905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001b49062000285565b90600052602060002090601f016020900481019282620001d8576000855562000224565b82601f10620001f357805160ff191683800117855562000224565b8280016001018555821562000224579182015b828111156200022357825182559160200191906001019062000206565b5b50905062000233919062000237565b5090565b5b808211156200025257600081600090555060010162000238565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200029e57607f821691505b60208210811415620002b557620002b462000256565b5b50919050565b613f1d80620002cb6000396000f3fe6080604052600436106101405760003560e01c8063715018a6116100b6578063b88d4fde1161006f578063b88d4fde14610480578063c87b56dd146104a9578063d0def521146104e6578063e85a0c3f14610523578063e985e9c51461053f578063f2fde38b1461057c57610140565b8063715018a6146103845780638462151c1461039b5780638da5cb5b146103d857806395d89b4114610403578063a22cb4651461042e578063a9059cbb1461045757610140565b806323b872dd1161010857806323b872dd1461023e5780632f745c591461026757806342842e0e146102a45780634f6ccce7146102cd5780636352211e1461030a57806370a082311461034757610140565b806301ffc9a71461014557806306fdde0314610182578063081812fc146101ad578063095ea7b3146101ea57806318160ddd14610213575b600080fd5b34801561015157600080fd5b5061016c60048036038101906101679190612790565b6105a5565b60405161017991906127d8565b60405180910390f35b34801561018e57600080fd5b506101976105b7565b6040516101a4919061288c565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906128e4565b610649565b6040516101e19190612952565b60405180910390f35b3480156101f657600080fd5b50610211600480360381019061020c9190612999565b6106ce565b005b34801561021f57600080fd5b506102286107e6565b60405161023591906129e8565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612a03565b6107f7565b005b34801561027357600080fd5b5061028e60048036038101906102899190612999565b610857565b60405161029b91906129e8565b60405180910390f35b3480156102b057600080fd5b506102cb60048036038101906102c69190612a03565b6108fc565b005b3480156102d957600080fd5b506102f460048036038101906102ef91906128e4565b61091c565b60405161030191906129e8565b60405180910390f35b34801561031657600080fd5b50610331600480360381019061032c91906128e4565b61098d565b60405161033e9190612952565b60405180910390f35b34801561035357600080fd5b5061036e60048036038101906103699190612a56565b610a3f565b60405161037b91906129e8565b60405180910390f35b34801561039057600080fd5b50610399610af7565b005b3480156103a757600080fd5b506103c260048036038101906103bd9190612a56565b610b7f565b6040516103cf9190612b41565b60405180910390f35b3480156103e457600080fd5b506103ed610c2f565b6040516103fa9190612952565b60405180910390f35b34801561040f57600080fd5b50610418610c59565b604051610425919061288c565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190612b8f565b610ceb565b005b34801561046357600080fd5b5061047e60048036038101906104799190612999565b610d01565b005b34801561048c57600080fd5b506104a760048036038101906104a29190612d04565b610e53565b005b3480156104b557600080fd5b506104d060048036038101906104cb91906128e4565b610eb5565b6040516104dd919061288c565b60405180910390f35b3480156104f257600080fd5b5061050d60048036038101906105089190612e28565b610ec7565b60405161051a91906129e8565b60405180910390f35b61053d60048036038101906105389190612ec2565b610f8c565b005b34801561054b57600080fd5b5061056660048036038101906105619190612f02565b611012565b60405161057391906127d8565b60405180910390f35b34801561058857600080fd5b506105a3600480360381019061059e9190612a56565b6110a6565b005b60006105b08261119e565b9050919050565b6060600080546105c690612f71565b80601f01602080910402602001604051908101604052809291908181526020018280546105f290612f71565b801561063f5780601f106106145761010080835404028352916020019161063f565b820191906000526020600020905b81548152906001019060200180831161062257829003601f168201915b5050505050905090565b600061065482611218565b610693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068a90613015565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106d98261098d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561074a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610741906130a7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610769611284565b73ffffffffffffffffffffffffffffffffffffffff161480610798575061079781610792611284565b611012565b5b6107d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ce90613139565b60405180910390fd5b6107e1838361128c565b505050565b60006107f2600c611345565b905090565b610808610802611284565b82611353565b610847576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083e906131cb565b60405180910390fd5b610852838383611431565b505050565b600061086283610a3f565b82106108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a9061325d565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b61091783838360405180602001604052806000815250610e53565b505050565b600061092661168d565b8210610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e906132ef565b60405180910390fd5b6009828154811061097b5761097a61330f565b5b90600052602060002001549050919050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d906133b0565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa790613442565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610aff611284565b73ffffffffffffffffffffffffffffffffffffffff16610b1d610c2f565b73ffffffffffffffffffffffffffffffffffffffff1614610b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6a906134ae565b60405180910390fd5b610b7d600061169a565b565b60606000610b8c83610a3f565b67ffffffffffffffff811115610ba557610ba4612bd9565b5b604051908082528060200260200182016040528015610bd35781602001602082028036833780820191505090505b50905060005b610be284610a3f565b811015610c2557610bf38482610857565b828281518110610c0657610c0561330f565b5b6020026020010181815250508080610c1d906134fd565b915050610bd9565b8192505050919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610c6890612f71565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9490612f71565b8015610ce15780601f10610cb657610100808354040283529160200191610ce1565b820191906000526020600020905b815481529060010190602001808311610cc457829003601f168201915b5050505050905090565b610cfd610cf6611284565b8383611760565b5050565b600d600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9990613592565b60405180910390fd5b81600d600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b610e64610e5e611284565b83611353565b610ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9a906131cb565b60405180910390fd5b610eaf848484846118cd565b50505050565b6060610ec082611929565b9050919050565b6000610ed3600c611a7b565b6000610edf600c611345565b905083600d600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f3d8482611a91565b610f478184611aaf565b7fec4de1eef14af3ae5d77facf1ed7a9d3d50f6285573ee0ec155fc11217fc3442848483604051610f7a939291906135b2565b60405180910390a18091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fd2573d6000803e3d6000fd5b507f3990db2d31862302a685e8086b5755072a6e2b5b780af1ee81ece35ee3cd33453383836040516110069392919061364f565b60405180910390a15050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6110ae611284565b73ffffffffffffffffffffffffffffffffffffffff166110cc610c2f565b73ffffffffffffffffffffffffffffffffffffffff1614611122576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611119906134ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611192576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611189906136f8565b60405180910390fd5b61119b8161169a565b50565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611211575061121082611b23565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166112ff8361098d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b600061135e82611218565b61139d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113949061378a565b60405180910390fd5b60006113a88361098d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061141757508373ffffffffffffffffffffffffffffffffffffffff166113ff84610649565b73ffffffffffffffffffffffffffffffffffffffff16145b8061142857506114278185611012565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166114518261098d565b73ffffffffffffffffffffffffffffffffffffffff16146114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e9061381c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150e906138ae565b60405180910390fd5b611522838383611c05565b61152d60008261128c565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461157d91906138ce565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115d49190613902565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600980549050905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c6906139a4565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118c091906127d8565b60405180910390a3505050565b6118d8848484611431565b6118e484848484611c15565b611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a90613a36565b60405180910390fd5b50505050565b606061193482611218565b611973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196a90613ac8565b60405180910390fd5b600060066000848152602001908152602001600020805461199390612f71565b80601f01602080910402602001604051908101604052809291908181526020018280546119bf90612f71565b8015611a0c5780601f106119e157610100808354040283529160200191611a0c565b820191906000526020600020905b8154815290600101906020018083116119ef57829003601f168201915b505050505090506000611a1d611d9d565b9050600081511415611a33578192505050611a76565b600082511115611a68578082604051602001611a50929190613b24565b60405160208183030381529060405292505050611a76565b611a7184611db4565b925050505b919050565b6001816000016000828254019250508190555050565b611aab828260405180602001604052806000815250611e5b565b5050565b611ab882611218565b611af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aee90613bba565b60405180910390fd5b80600660008481526020019081526020016000209080519060200190611b1e929190612681565b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611bee57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611bfe5750611bfd82611eb6565b5b9050919050565b611c10838383611f20565b505050565b6000611c368473ffffffffffffffffffffffffffffffffffffffff16612034565b15611d90578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611c5f611284565b8786866040518563ffffffff1660e01b8152600401611c819493929190613c2f565b6020604051808303816000875af1925050508015611cbd57506040513d601f19601f82011682018060405250810190611cba9190613c90565b60015b611d40573d8060008114611ced576040519150601f19603f3d011682016040523d82523d6000602084013e611cf2565b606091505b50600081511415611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90613a36565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611d95565b600190505b949350505050565b606060405180602001604052806000815250905090565b6060611dbf82611218565b611dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df590613d2f565b60405180910390fd5b6000611e08611d9d565b90506000815111611e285760405180602001604052806000815250611e53565b80611e3284612047565b604051602001611e43929190613b24565b6040516020818303038152906040525b915050919050565b611e6583836121a8565b611e726000848484611c15565b611eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea890613a36565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611f2b838383612376565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f6e57611f698161237b565b611fad565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611fac57611fab83826123c4565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ff057611feb81612531565b61202f565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461202e5761202d8282612602565b5b5b505050565b600080823b905060008111915050919050565b6060600082141561208f576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506121a3565b600082905060005b600082146120c15780806120aa906134fd565b915050600a826120ba9190613d7e565b9150612097565b60008167ffffffffffffffff8111156120dd576120dc612bd9565b5b6040519080825280601f01601f19166020018201604052801561210f5781602001600182028036833780820191505090505b5090505b6000851461219c5760018261212891906138ce565b9150600a856121379190613daf565b60306121439190613902565b60f81b8183815181106121595761215861330f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121959190613d7e565b9450612113565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220f90613e2c565b60405180910390fd5b61222181611218565b15612261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225890613e98565b60405180910390fd5b61226d60008383611c05565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122bd9190613902565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016123d184610a3f565b6123db91906138ce565b90506000600860008481526020019081526020016000205490508181146124c0576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816008600083815260200190815260200160002081905550505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160098054905061254591906138ce565b90506000600a60008481526020019081526020016000205490506000600983815481106125755761257461330f565b5b9060005260206000200154905080600983815481106125975761259661330f565b5b906000526020600020018190555081600a600083815260200190815260200160002081905550600a60008581526020019081526020016000206000905560098054806125e6576125e5613eb8565b5b6001900381819060005260206000200160009055905550505050565b600061260d83610a3f565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b82805461268d90612f71565b90600052602060002090601f0160209004810192826126af57600085556126f6565b82601f106126c857805160ff19168380011785556126f6565b828001600101855582156126f6579182015b828111156126f55782518255916020019190600101906126da565b5b5090506127039190612707565b5090565b5b80821115612720576000816000905550600101612708565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61276d81612738565b811461277857600080fd5b50565b60008135905061278a81612764565b92915050565b6000602082840312156127a6576127a561272e565b5b60006127b48482850161277b565b91505092915050565b60008115159050919050565b6127d2816127bd565b82525050565b60006020820190506127ed60008301846127c9565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561282d578082015181840152602081019050612812565b8381111561283c576000848401525b50505050565b6000601f19601f8301169050919050565b600061285e826127f3565b61286881856127fe565b935061287881856020860161280f565b61288181612842565b840191505092915050565b600060208201905081810360008301526128a68184612853565b905092915050565b6000819050919050565b6128c1816128ae565b81146128cc57600080fd5b50565b6000813590506128de816128b8565b92915050565b6000602082840312156128fa576128f961272e565b5b6000612908848285016128cf565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061293c82612911565b9050919050565b61294c81612931565b82525050565b60006020820190506129676000830184612943565b92915050565b61297681612931565b811461298157600080fd5b50565b6000813590506129938161296d565b92915050565b600080604083850312156129b0576129af61272e565b5b60006129be85828601612984565b92505060206129cf858286016128cf565b9150509250929050565b6129e2816128ae565b82525050565b60006020820190506129fd60008301846129d9565b92915050565b600080600060608486031215612a1c57612a1b61272e565b5b6000612a2a86828701612984565b9350506020612a3b86828701612984565b9250506040612a4c868287016128cf565b9150509250925092565b600060208284031215612a6c57612a6b61272e565b5b6000612a7a84828501612984565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ab8816128ae565b82525050565b6000612aca8383612aaf565b60208301905092915050565b6000602082019050919050565b6000612aee82612a83565b612af88185612a8e565b9350612b0383612a9f565b8060005b83811015612b34578151612b1b8882612abe565b9750612b2683612ad6565b925050600181019050612b07565b5085935050505092915050565b60006020820190508181036000830152612b5b8184612ae3565b905092915050565b612b6c816127bd565b8114612b7757600080fd5b50565b600081359050612b8981612b63565b92915050565b60008060408385031215612ba657612ba561272e565b5b6000612bb485828601612984565b9250506020612bc585828601612b7a565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612c1182612842565b810181811067ffffffffffffffff82111715612c3057612c2f612bd9565b5b80604052505050565b6000612c43612724565b9050612c4f8282612c08565b919050565b600067ffffffffffffffff821115612c6f57612c6e612bd9565b5b612c7882612842565b9050602081019050919050565b82818337600083830152505050565b6000612ca7612ca284612c54565b612c39565b905082815260208101848484011115612cc357612cc2612bd4565b5b612cce848285612c85565b509392505050565b600082601f830112612ceb57612cea612bcf565b5b8135612cfb848260208601612c94565b91505092915050565b60008060008060808587031215612d1e57612d1d61272e565b5b6000612d2c87828801612984565b9450506020612d3d87828801612984565b9350506040612d4e878288016128cf565b925050606085013567ffffffffffffffff811115612d6f57612d6e612733565b5b612d7b87828801612cd6565b91505092959194509250565b600067ffffffffffffffff821115612da257612da1612bd9565b5b612dab82612842565b9050602081019050919050565b6000612dcb612dc684612d87565b612c39565b905082815260208101848484011115612de757612de6612bd4565b5b612df2848285612c85565b509392505050565b600082601f830112612e0f57612e0e612bcf565b5b8135612e1f848260208601612db8565b91505092915050565b60008060408385031215612e3f57612e3e61272e565b5b6000612e4d85828601612984565b925050602083013567ffffffffffffffff811115612e6e57612e6d612733565b5b612e7a85828601612dfa565b9150509250929050565b6000612e8f82612911565b9050919050565b612e9f81612e84565b8114612eaa57600080fd5b50565b600081359050612ebc81612e96565b92915050565b60008060408385031215612ed957612ed861272e565b5b6000612ee785828601612ead565b9250506020612ef8858286016128cf565b9150509250929050565b60008060408385031215612f1957612f1861272e565b5b6000612f2785828601612984565b9250506020612f3885828601612984565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f8957607f821691505b60208210811415612f9d57612f9c612f42565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000612fff602c836127fe565b915061300a82612fa3565b604082019050919050565b6000602082019050818103600083015261302e81612ff2565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006130916021836127fe565b915061309c82613035565b604082019050919050565b600060208201905081810360008301526130c081613084565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b60006131236038836127fe565b915061312e826130c7565b604082019050919050565b6000602082019050818103600083015261315281613116565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b60006131b56031836127fe565b91506131c082613159565b604082019050919050565b600060208201905081810360008301526131e4816131a8565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000613247602b836127fe565b9150613252826131eb565b604082019050919050565b600060208201905081810360008301526132768161323a565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b60006132d9602c836127fe565b91506132e48261327d565b604082019050919050565b60006020820190508181036000830152613308816132cc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b600061339a6029836127fe565b91506133a58261333e565b604082019050919050565b600060208201905081810360008301526133c98161338d565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b600061342c602a836127fe565b9150613437826133d0565b604082019050919050565b6000602082019050818103600083015261345b8161341f565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134986020836127fe565b91506134a382613462565b602082019050919050565b600060208201905081810360008301526134c78161348b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613508826128ae565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561353b5761353a6134ce565b5b600182019050919050565b7f6861746120766172000000000000000000000000000000000000000000000000600082015250565b600061357c6008836127fe565b915061358782613546565b602082019050919050565b600060208201905081810360008301526135ab8161356f565b9050919050565b60006060820190506135c76000830186612943565b81810360208301526135d98185612853565b90506135e860408301846129d9565b949350505050565b6000819050919050565b600061361561361061360b84612911565b6135f0565b612911565b9050919050565b6000613627826135fa565b9050919050565b60006136398261361c565b9050919050565b6136498161362e565b82525050565b60006060820190506136646000830186612943565b6136716020830185613640565b61367e60408301846129d9565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136e26026836127fe565b91506136ed82613686565b604082019050919050565b60006020820190508181036000830152613711816136d5565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613774602c836127fe565b915061377f82613718565b604082019050919050565b600060208201905081810360008301526137a381613767565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b60006138066029836127fe565b9150613811826137aa565b604082019050919050565b60006020820190508181036000830152613835816137f9565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138986024836127fe565b91506138a38261383c565b604082019050919050565b600060208201905081810360008301526138c78161388b565b9050919050565b60006138d9826128ae565b91506138e4836128ae565b9250828210156138f7576138f66134ce565b5b828203905092915050565b600061390d826128ae565b9150613918836128ae565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561394d5761394c6134ce565b5b828201905092915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061398e6019836127fe565b915061399982613958565b602082019050919050565b600060208201905081810360008301526139bd81613981565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613a206032836127fe565b9150613a2b826139c4565b604082019050919050565b60006020820190508181036000830152613a4f81613a13565b9050919050565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b6000613ab26031836127fe565b9150613abd82613a56565b604082019050919050565b60006020820190508181036000830152613ae181613aa5565b9050919050565b600081905092915050565b6000613afe826127f3565b613b088185613ae8565b9350613b1881856020860161280f565b80840191505092915050565b6000613b308285613af3565b9150613b3c8284613af3565b91508190509392505050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000613ba4602e836127fe565b9150613baf82613b48565b604082019050919050565b60006020820190508181036000830152613bd381613b97565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613c0182613bda565b613c0b8185613be5565b9350613c1b81856020860161280f565b613c2481612842565b840191505092915050565b6000608082019050613c446000830187612943565b613c516020830186612943565b613c5e60408301856129d9565b8181036060830152613c708184613bf6565b905095945050505050565b600081519050613c8a81612764565b92915050565b600060208284031215613ca657613ca561272e565b5b6000613cb484828501613c7b565b91505092915050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613d19602f836127fe565b9150613d2482613cbd565b604082019050919050565b60006020820190508181036000830152613d4881613d0c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d89826128ae565b9150613d94836128ae565b925082613da457613da3613d4f565b5b828204905092915050565b6000613dba826128ae565b9150613dc5836128ae565b925082613dd557613dd4613d4f565b5b828206905092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613e166020836127fe565b9150613e2182613de0565b602082019050919050565b60006020820190508181036000830152613e4581613e09565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613e82601c836127fe565b9150613e8d82613e4c565b602082019050919050565b60006020820190508181036000830152613eb181613e75565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212203c6b9b04b037009b319713ffcc9230b9b3a34750985f5b52b51970db63d1844264736f6c634300080b0033