ETH Price: $2,202.61 (+4.00%)

Token

OnlyDevs (OnlyDevs)
 

Overview

Max Total Supply

100,000,000 OnlyDevs

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
383,127.227729265 OnlyDevs

Value
$0.00
0x4b773cec379557a8dbcbe44c2fa9d68254b99fde
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
OnlyDevs

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-13
*/

/*
TG: https://t.me/OnlyDevERC20
WEB: https://onlydevs.dev
X: https://twitter.com/OnlyDevsERC

*/

//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKkdc;'...............................'',,,;coxOKXNNNXXXNNNNNNNWWNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNXKOd:,'......................................',;:cox0KNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXKOxoc,...................'''.....................''',:ldOKKXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNNNNNNWNNNXKOkdc;''''''.................'''''''.....................',:ldk0XNNNNNNNNNNNNNWNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWNX0Odc;,''...'''................''''..........'''................',:lxO0XNNXNNNNNNNWWNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNNNNNXOxl:,.........................''''''..........'','''....     .......';cdk0KXXNNNXNNNWNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWNNNNWWNNX0xc,..........................''''''''''...........'''''......   .......',:okOKXNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNNNNNNWNNNWWWNKOo:............................'',,,,,''...................''...   .........,:lxOXNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXNNXXXNNNNNNXXXXNWWNXkoc;'.............................'','''................................    ....';lx0KKXXNXXXXXXXXXXXXNNXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXOO0kOX0k00k0NNWKkO0kONXOkkO00Oko;...cddddddddol,..............'ldl'......':dkO00Okdc'. ....:od:. .lool'.....;d0OkKXOO000000000kOOO000000KK0KXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKkKMKkXO0WNk0WNW0ONM0xkoxXWXkdkKWKc.,dOOKWMWXOOk;..............;0MK;.....l0WWKOxxk0NWXx,.  .dWMx..;KMWWO;....;0MXx0XOKMWNKKKKK0kkOKMWNKKKXNNKO0XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKkXM0kXO0WNO0WNN0ONMOo:cKMXc...;lo:'....;0MNl..................;0MK;.. 'kWW0c'.....;xNMKc. .dWMx. ;KMWMWKc...,OMXdkKkKMNkOK0K00K0kKMXkOK0000NW0OKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKkXMKkXO0WNO0WNN0ONMO;.,OWWOoc;'........,0MXc..................;0MK:...oWM0,....... .oNM0' .dWMd. ;KMNO0WNd'.,OMXolxx0MNOkOO0OO00kKMKkKWWWNOONW0OXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKkKMKkXO0WNOONNNOkNMk'..,oOXWWNKkc......,0MX:..................;0MK;.';xMMx......    ;KMX; .dWMx. ;KMK,.xNWk,,0MXc,:l0MMNKKKKKkxkkKMXkKWNNWKkXMKOXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXNNNNKkXM0kXO0WNO0NXKdxNMk......,:lxKWNd.....,0MX:..................;0MK; ..oWM0,......  .oNM0' .dWMx. ;KMK; .lXWKOXMX:.':0MW0kOOOOxxkxKMXkKWNNNOONM0OXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0k00OOKXOONMKkX0OWW0k0kdlOWMk'..:lc,...oNMO. .. ,0MX:    ......,loc'...cXMK;...,kWW0c'.....,xNMXc. .dWMx. ;KMK; ..:0WMMMX:..;0MXdlxxkkxxxxKMXkO00000NWKOKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWXOKWWK00KNWXO0WXO0WWX0OOKWNO;..'xNWKxoxKWKc.    '0MX:.......''':OWW0xdkXWXd,.''.;dKWWKkxxk0XWXk:....dWMx. ;KMK, ...,kWMMX:..,0MWKO0000OxoxKMWXKKKXWNKOOXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWX000KKKK000KNNNXK0000K0Odc.....,cdO000kl,.     .ldo,..'',;;::::cok0KK0Oxocc::::::ldkO0KKK0kdc;,,,,'cdx:. 'ldl. .....cddo'  .lxxxxxxxxkxdxk00000KK000XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKK000KXNNNNNNNN0d:'.................     ......',,;::ccccccclcclllllooodddddddddoooooolllllllcc:;,''......   ...        .........,cxO0OkkO0KXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNNNKkl,............         ....',;;:cccllloooollloooddddddddxxxxxddddxxxxxdddddddooollc::;'....   ..     ............,:oxxxkO0KXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWWNNXXNNKxl,.............        ...',;:cllllllooooooooddddxxxxdddxxxxxxddxxxxxxxddddddddddoooolc:;'...          ..     ...',;::cldOKXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWNNNNNKx:'.................. .....,;:ccllllllooddddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxddddddddolc:,'..              .......'',;cdOKXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNWNKxc'................   ....',:cllooooooooddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkxxxxxxxxxxdddddolc:;'...           ........',:ok00KKXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNOl,..'......   ...     ..',;:looddddddddxxxxxxxxxxxxxxxxxxxxxxxxxkkxxxxxxkkkkkkkkkkkkkxxxxxxddolc;'...         ...   ...';cokOOOKXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWWNNKx:...'.......         ..';:cloddddddddxxxxxxxxxxxxxxxxxkkkkkkkkkkkkxxxxxxxkkkkkkkkkxxkkxxxxxxddol:,'...        ....  ...';:ldxkOKXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWNNKOl'..''........  ... ...';cllodddddddddxxxxxxxxxxxxxxxkkkkkkkkkkkkkxxxxxxxxkkkkkkkxxxxxkxxxxxxxddoc;,...            ......':lxk00KXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNNNNNNNXOd:....'.................,:loodddddddddxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxdoc;'..            ......';ldkO0KXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNNNNNNNKkl,........ ............';codddddddddxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxkkxxxxxxxxxdol:,..            ... ..';:loxOKXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKd:,........  ...........,:looddddddxxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxddolc;'..               ...';ldkOKXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXOo;'....................';clodddddxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxddol:,...       .     .....,lxO0KXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWWXkc'....................',:coddddddxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxxxdolc;'..            .    ..:ok0KXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWNKx:'....................',:loddddxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxkkxdolc;'...               ...';lxOKXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWWNKx:'....................',:codxxxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxkxxdolc;'...               ....';lx0XXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKxc'....................',:codxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxddolc;'...               ....,;ldOKXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKxc,....................';:lodxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxddoolc;'......              ..,:lx0XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKkc,....................';clodxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxddool:,....                ..';lx0XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXOl,....................,:clodxxxxxxxxxxxxxkkkkkkxkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxkkkkkkkkkxxxxkxxxxxdddolc,....                ...,cx0XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX0o;'..................';cloddxxxxkkkkxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxkkkkxxxdddol:,'....            ......';d0XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKd:,..................,:lodddxxxxxxxddddxxxdxxkkkkkkkkxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxkxxxxxddolc;'.....           .......;d0XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKkl;..................,:lodddddoooollllloooooddxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkxxxddddddddddddodxxxxddol:,.......          .....':x0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXOd:'................';codxxddocc:::::::::::::ccclloddxxkkkkkkkkkkkkkkkkkkkxxxdoolllcc:::cclcc:::looddddoc,'.....              ..':xKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX0kl,...............',:ldddolc:;,;;,,,'''''..'''',;clloxkkkkkkkkkkkkkkkkkxxddoc:;,,'''...',,,,',,,;:lloddl:,'....              ..'ckKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXK0d:'.............',:loddoc;,''',,,''............';:clddxxxkkkkkkkkxxxxddoolc:,'.............',,,,,;:coddoc;'....      ..    ...,lOXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNNNXKkc'.............,:coddol:;,,,,,,,,,,,;;;;;;;:;;;:cloodddxxxxxxxxxxxxdoolllc:;;,,,;;;:::;,''',;;;;;::coxxdl,.....     .   ....':d0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXOl,............';codddolc:::::::::cclodooooooolllloooddddxxxxxxxxxxddolllloolllllooddddolc::::cccccccldkxo:'.....           .,cxKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKOl,............,clodxxdoccccllooooddxxxxxxxxxxddddooodddxxxxxxxxxxxddooooodddddddddxxkkxxddoollllollloodxdl;'.. ...         .,cx0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXNNXKkl,...........':lddddddollooodddxxxxxxxkkxxxxxxxxdddodddxxxxxxxxxxxddddoodddxxxxxddxkkkxxxxxddddoooooododdoc,.....         ..;lkKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXNNXOo;...........,cdxxxddddoddddddxxddoooodddooooodxxddddddxxxxxxxxxxxdddodddddoooolllooddooddxxxxddooooddddddl:,...       ....'cdOKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNNN0d;'..........;ldkkxxxxddddddddddolc:::::::;;:cloddddddddxxxxxxxxxdddooddddlcc:;,,,;;:::clodddddddddddxxxxxdl;.. .         .,lk0XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNXXXNN0d:'..........;lxkkxxxxxxddxxddocc::;,'....';;:::cldxddddddxxxxxxxxddddddolc::c:,......',;:cloxxxxdddxxxxxxdo:'........    .,lx0XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNNNNNXXX0xc,.........':oxkkxxxxxxddddol:,,:c:,.....,:cc:,;cdxxddddddxxxxxxdddddxdoc::cll,......,;,,,:lodxddxxxxxxxxxdl;........  ...,lx0XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNXXKkl,.........':oxkkkkkkxxdoooc:;,;col:,''',:cllc:codxddoodddxxxxxxddoddxxdlllool:,'',;:clc:;;:loooddxxxxxxxxxo:'............;oOKXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXKOo;'........,cdxkkkkkkxxxxxolllodddolcclllodddddddxdddddddxxxkkkxddoodxxxddoddoooooooodddoolllooddxxkkkkkkkxo:'........  ..:xKXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXX0xc,'.......,cdxkkxxxxkkkkxxddxkkxddddddxxxddxkkkxddddddxxxkkkkkkxddoddxxxxxdddxkkxxxddxxxxdddddxxxkkkkkkkkxo:'. .........,lOXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXKko:;,''....,cdkkkxxxxkxxxxxkkkxdddxxxxxddddxxxxxddooddxxxkkkkkkkxxxdddddxxxxdddddxxdddxxxxxxkkkkkkkkkxxkkkxo:'.......,;:cldOKXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXKOdc:;;,'...,cdxkkxxxkkkkkxkkkkkxxdddddxxxxxxxxxddddddxxxkkkkkkkkkxxxdddddxkxxddxxxxxxxxxxxkkkkkkkxxxxxxkkkxdc'.......,:cldkKXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXKkdlccc:;'..,cdxkkkkkkkkkkkkkkkkkkxxddxxxxxxxxxdxxxdddxxxkkOOOOkkkxxxxdddxxxxxxxxxxxxxxxxkkkkkkkkkkxxxkkkkkkdc'...',,;:cclokKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNXX0kdooool:,..,cdxkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxddxxdddxxkkkOOOOOkkxxxxddxxxxxxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkxdc'...,:cllllllx0XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNX0kdoddddl;'.':oxkkkkkkkkkkkkkOOkkkkkxxxxxxxxxxxxdddddxxkkkkOOOOOkkxxxxxxxxxxxkkxxxxxxxxkkkkkkkkkkkkkkkkkkkkxdc,..';lodoooooxOKXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNX0kdddxxxo:,.':oxkkkkkkkkkkkkkOOkkkkkxxxxkkkkkkkxxdddxxkkkkkOOOkkkkkxxxxxdxxxxkkkxxkkkkkkkkkkkkkkkkkkkkkkkkkxdc;'',codddddddxk0XXNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNNX0kxdddddo:,.':oxkOkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxdddxkkkkkOkkkkkkkkxxddxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkxdl;,,;lodxxddoodOKXXNNXNNNNNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNNX0kdddxxdo:,.':oxkOkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxkkOOkkkkkkOkkxxdxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkxdl:,,;codddddddxOKXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNNX0kdddxxxo:,',:oxkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxxddxkkkkxkkkkkkkkkkkkkxxxxxxxxxxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkxdo:;,;codddddddk0KXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNXKOxddxxxo:;,;cdxkkkkkkkkkkkkkkkkkkkkkkkkkkkkxxdddxkkkkkkxxxkxxxxxxxxxkxxxxdddxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkxdoc;;;coxxddddxO0XXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNXXKOxddxxxoc;;:ldxkkkkkkkkkkkkkkkkkkkkkkkkkkkkxddxxxxxxddddddxddddxdddxxxxxxdddxxxkkkkkkkkkkkkkkkkkkkkkkkkkkxxxol:;:ldxxxddxkOKXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNNNNXXXX0kxddxxoc:;:ldxkkkkkkkkkkkkkkkkkkkkkkkkkkkxxddddddoolllooddddddolccloddddddddxxxkkkkkkkkkkkkkkkkkkkkkkkkxxxxdlcccldxxxddxk0XXNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNNNNXXXXKOxddxxdl:::loxkkkkkkkkxxxxxxxkkkkkkkkkkxxxxddooooolccclloodddolc;,;clodddddddxxxxxkkkkkkkkkkkkkkkkkkkkkxxxddollloddxddxkOKXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNNNNXXXXK0kxdxxxoc::loxxkkkkkkxxxxxxxxxxkkkxxxxxxxxxddoooooolloooooolooooolllccloddddxxxxxxkkkkkkkkkkkkkkxxkkkkxxxxddoolloddddxxk0XXNXXNNNNXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNXXXXXXK0kxxxxdlccldxxxxkkkxxxxxxxxxxxxxxxxxxxxxxxdddddooooddddoooooooddddollodxxxxxxxxxxkkkkkkxxxxxkkxxxxkkkxxxxddooooodxxxxkOKXNNNNNNNNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXNNXXXXNNXXXKOkxdddoolodxxxxxkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxdoooodddooodddooooloddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkxxxxdddoooddxxxkO0KXNNNNNNNNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXNNXXXXNNNXXXK0OxxdddooodxxxxxxkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxddddddoooddddooddddddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxddddddddxxxkOKXNNNNNNNNNXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXNNXXXNNNXXXXKKOkxxxddoodxxkkxxxxxxxxxxxxxxxxxxxxxxxxxxxdooddxxdddooooooooodxkxddooddddxxxxxxxxxxxxxxxxxxxxxxxxxkkkxxxdddddddddxkO0KXNNNNXXNNNXXXNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXNXXK0kxxxddoodxxkkxxxxxxxxxxxxxxxxxxxdxxxxddooooddxxddddddddoooodxxxdooodddddxxxxxxxxxxxkxxxxxxxxxxxxkkkxxxdddxxxdddxk0KXXNNXXXXNNNNXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXNXNNNNX0OkxxxddddxxxxxxxxxxxxxxxxxxxxxxxxxddoollooddddddddddooooooooddddddddoooodxxxxxxxxxxkxxxxxxxxxxxxkkkxxxxdddddxxkkO0KXXXXXXNNNNXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXNNNXK0OkkxxddddxxxxkkxxxxxxxxxxxxxxxxxdolcccloddoolccllllllllllllllooddddoollloddxxxxxxxxxxxxxxxxxxxxkkkxxxxdddxxxkOO0KXXNNNXXNNXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXNNNNXXK0Okxdoooddxkkkkxxxxxxxxxxxxxxxxddoc:::clllc::;;::cccccccccccccclllooolc::codxxxxxxxxxxxxxxxxxxxxkxxxxxdxxxxkOO0KXNNNNNNXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXNXK00Oxddooodxkkkkxxxxxxxxxxxxxxxxxdoc::ccc:;;:::ccloooooooollcc:::::cllc:;;:codxxxxxxxxxkxxxxxxxxkxxxxxddddxxkO0KXXNNNNNNNXXXXXXXNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXNXXK0Okkxddddxxkkkxxxxxxxxxxxxxxxxxdoc::::;'',;cllodxxxxxxxxxdolc::;,,;;;;;;:codxxxxxxxxxkxxxxxxxkkkxxxxdddxxkk0KKXXXXXXXNNNXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXNXXKK00OOkxdddxxkkxxxxxxxxxxxxxxxxxxoc::::;'',:clooddddddxxkkxdoolc:,'',;:cccloxxxxxxxxxxkxxxxxxxkkkxxxxdxxkOO0KKXXNXXXXNNNXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXNNXXKK000Okxxxxxkkxxxxxxxxxxxxxxxxxxdollllc::::clloooooooooddooooollc:;:cllllodxkxxxxxxxxxxxxxxxxkkkkxxxxkO0KKKKXXNNNNNNNNXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXNNXXXKKKK0OkxxxkkkxxxxxxxxxxxddxxxkkxdddooollcccllooooooooooooooollllooooddolodxkkxdddxxxxxxxxxxxkkkkxxxkO0KXXXXXXXXXXNNNNNXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXNNNXXXXXXKK0OkkkkkkxxxxxxxxxxddddxxxxxxddddooolllooooodddddddddddollloddxxxxdoodxkxxddddxxxxxxxxxxkkkkxxkO0KKKKXXXXXXXXXXXXNNNNNNXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXNNXXXXXXXXXXKOkkxxkkkxxxxxxxxxdddddxxxddxxxxdooooooollloodddddooollllooddxxxxxxdxxxxxdxxdddxxxxxxxxkkkxxxkO0KXXXXXXXXXXNXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXNXXXXXXNNNXK0OkxxxkkxxxxxxxxxxxddddddddxxxxdoooddollccccclllllcccllooddddddxxxxxxxxxxxxdddxxxxxxxxkkkxxkO0KXXNNNNXXXXNNNNXXXXXNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNXXXXXXXXXXXXXXXXNNNXXK0Okxxxkkxxxxxxxxxxxxddddddxxxxdoodddollc:::;;::::clllooddddxxxxxxddxxxxddddxxxxxxxxxxkkkxkO0KXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXXXXXXXK0Okxxxxxxxxxxxxxxxddxxxxdxxxxxdddxxddolc::;;,,,,;:clooddddxxxxxxdddxxxxddddxxddxxxxxxxkxxkOKXXNNNXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXNNXXXNNNXXXXXXK0Okxxxxxxdxxxxxxddddxxxddddxxxxxxxxddooollc::::clooddxxxxxxxxxxdddddxxdddddddddxxxxxxxxxk0KNNNNNXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXNNXXNNNXXXXXXXKKOkxxxxxxxxxxxdddddddddddddxxxxxxxxxxxxxxddooooddxxxkkkxxxxxxxxddddddddxdddddddxxxxxxddxk0XNNNNXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXNNXXNNNXXXKXXXXK0kxxxxxxxdddddddddddddddddxxxxxxxxdxxxxddxxxxxxxxxxxxxxxxxxxxxdddddddxxdddddddddddxdddxOKXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXNNXXKKXXXXK0kxdxxxxxdddddddddddoodddxxxxxxxxdddddddddxxxxxxxxxxxxxxxxxxxddddddddddddddddddddddddxk0KXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXNNXXXXXXXXX0Oxxxxxxddoooddddooolloddxxxxxxxdddddddddddddddddddxxxxxxxxxxddddddddddddooodddodddddxk0KXXXXXXNXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXNNNXXXXXXXXXXXXNXXXXXXXXXXKOkxxxxddoolloooooolcclodxxdddooooodddddddddoooooddddddxxxxxxdddddoooooooooooooodddddxO0XXXXXXXXXXXXXXNNXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXNNNXXXXXXXXXXXXXXXXK0OkxxdddolllloollllcclloddollllloooooooooooooooooooddddddddddoooooooollloooooodddddxkOKXXNNNXXXXXXXXXNNNXXXNNNNNNNNNNNNNNNNNNNNNNNNNXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXNXXXXXXXXXXXXXXXXXXXK0OkxxddollllllllllllllllllccccllllllllllllllloooooooooooooooollllllllllllloooddddxxkOKXXNNNNXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXNNXXXXXXXXXXNNXXXKXXKKOkxddddollllccccccccclllcccccclllllllllcccllllllllllllclllllccccccccclllllooddddxkO0KXXXNXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXNNNNNNXXXXXXXXXXNNNXXXXXXK0kxddddooollcccccc:::ccccc::ccccccccccccccccccccccccccccccccc:::ccccccllloooodddxkO0KXXXXXXXXXXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXNNXXXNNNNNNNNXXXXXXXXXXXXXXXXXK0Oxdoooooolllcc:::::::::::::::::::::::::::cccc:::;;:cccc:::::::::cccclloooooodddxkOKXXXXXXXNNNXXXXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXNNXXXNNNNNNXXXXXNNNXXXXXXXXXNNXK0kxdddooollccc::;;;;;;::::::;;;;;;;;;;;;;;::;::;;;;:::::;;;;;:::cclllooodddddddxk0KXNNNXXXXXXXNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXNNXXXXXXXXXXXXXXNNNXXXXXXXXXNXXK0Okxxdooollcccc::;;;;;;;;;;;,,,,,,,,,,,,,,;;,,,,,,,;;;;;;;;;;::cccloooooodddxxxkO0KXNXXXXXXXXNNNNNXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXNNNXXXXXXXXXXXXXXXXXXNNXXXXXXXXX0Okxddooollllccccc::;,,,,,,,,,,,,''',,,,,,,,,''''''''',,;;::ccccllllllooooddxxxkO0KXXXXXXXXXXNNNNNXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXNNNXXXXXXXXXXNNNXXXXXNNNXXXXXXK0kxdddooolllllllcc:;,,,,,,,,,,''''',,,;;;,,''''''''',,,;:ccccclllllllooooddxxxxO0XXXXXXXXXXXNNXXNNNNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNXNNXXXXXXXXXXXXXXXXXXXXNNNXXXXXXNNNXXXXXK0kxxxddooollcccccc::;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,;;;:::ccccccllllloooodddddxkOKXNXXXXNNNXXXXXXXXNNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXNNNNNNNNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXKK0Okxxddoolllccccccccc::::;;;;;;;;;;;;;,,,,,,;;;;;;;::cc::::ccclllooloooddddddxk0KXNXXXXXNNNXXXXXXXXNNXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNXXXXXXXXXNNNXXXNNXXXXXXXXXXXXNNXXXXXXXXXXXXXXXXXXK0Oxxddooollllccccccccc:::::::::::::::;;;;;;;::::::::ccccccccllllloolooodddxxxxk0KXXXXXXNNNNXXXXXXXXXNXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXNNNNNNNNNNXXXXXNNXXXXXNNNNXNNNXXXNNXXXXXXXXXXXXXXXXXXXXNNXXXXXXXXXXXKOxxddooooollllllccccc:::::ccccc::;::::;:::::::::::cccccccclllllloooooooddxxxxkO0KXXNNNNNNXXXXXXXXXNNNNXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXNNNNNNNNNNXXXXXNNNNNXXXXXXXNNXXXXNNNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXKOkxxdddddooolllllccccccccccccc::;;::::::cccccccccccllclllllllllloooddddddxxxxxkO0KXNNNNXXXXXXNNXXXXNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXNNNNNNNNNNNNNNXXXXXNNNNXXXXXXNNNXXXXXNNNXXXXXXXXXXXXXXXXXXXXXNXXXK0OOOO00kxxxxxdddddoolllllccccccccccccccccccccccccccccccclllccccclllooooooddddddddddxxkkkO00000KXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXNNNNXXXXXXXXXXXXXXXNNXXXXXXNXXXXXXXXXXXXXXXXKOkdoodxkkkxxxxxxddddddooollllllccccccccclllllcccccccccccccllllcccclloooooooddddddxdddxxkkkkkkxddkO0XXNNXXXNNNNNNXNNNNXXXXNNNNNNNNNNNNNNNNNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXNNNNXXXXXXXXXXXXXXXNNNXXXXNNNNNNXXNXXXXXXKK0koc::ldkkkxxxxxxxxddddddddooolllllcllllllllllllllllllllccllllllllllloooddoddddddddddddxxxxxkkkdl:coxOKXXXXXNNNNNXXXNNNXXXNNNNXXNNNNNNNNNNNNNXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXNNNNXXXXNNXXXXNXXXXXXXXXXXKK0Okxdl:;;:lxOOkxxdddxxxxdddddddddoooooooollllllllllllllllllllllllllooooodddddddddddddxddddddddxxkOOxl:;;coxO0KKXXNNNNNXNNNNNNNNNNXXXNNNNNNXXNNNNNNXXXXNNXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXNNNXXXXXXXXXXXXXXXXXXXKKOkxdolc::;;;:oxOOkxddddddxxxxddddddddddddddoooollllllllllllllllloooooooooddddddddddddddddddddddxxkkkkxoc:;;:clodxO00KXXXNNNNNNXXNNNXXXXXNNNXXXXNNNNNNXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXNNNNNNNXXXXXXXXXXNXXXXXXNXXXXXXXKK00Oxol:;;;;;;;;;:ldkkkxddxddoodxxxdddddddddddddddoooooooooooooooooooooooddddoooooodddddddddddxxxxddxkOkdl:;;;:::::ccllodxOKKXXNNNXXXXXNNNNNNNNNXXXXNNNNNNXXXXXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXNXXNNXXXNXXXXXXXXXNNNXXXXXKOxooolc:;,,,,;;;;;;cldxkxddxxxdddxxxxxxddddddddddddddddddddddoooodddoooooooddddddddddddxxxddxxdddxxxxxxdlc;,,;;;;;;;;:::::coxO0KXXNNXNNNNNNNNNNNNNXXXXXNNNXXXXXXNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNNNNNXXXXXNNNNXXXXXXNNNXXXXKK0OOOkxdlc:::::;;,,,,;;;,,,;:ldxkxxdxxxxddddxxxddddddddddddddddddddoooodddoooodddodddddxxxxxddddddddxxxddxxdolc:;;,,,;;;;;;;;;;;;;;:cloxO0KKXXNNXXNXXXXNNNXXXNNNXXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNNXXXNNNNNNXXXNNNNXXXXXXXNNXXXK0kdollc:;;;;::::;;,,,,,,;;;;,,,;coxkxxdxxxdoodxxxdddxxxxxdddddddddooooooodooooddddddddddxxxxxxxddddddxxxdddolc;,,,;;;;;,;;;;;;;;;;::;;;;;:ldxkO0KKXXXXXKXXXNNNNNNXXXXXXXXNNNNXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXXXXXXXXXXXXXXKK0Okxolccc:;,',;;;;;;;;;,,',,,,,,,,'',:odxxddddddddxxdddxxxxxxxddddddddddddddddddddddddddxxxxdddddxxdddddxxxdolc:;,,,,;;,,,,,,,,;;;;;;;::;,,,,;:ccllodxk0KXXXXXXXNNNNNNXXXXXXXNNXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXXXXXXXXXXXXXKK0Okxxdoc:;;;::;,'',;;;;;;;;;;,,''',,,,,,'',;clodddddxxxdddxxxxxxxddxdddddddxxdxxxxxddddddddddxxxxxddddddxxxxxdoolc;,'''',;;,,,,,,'',,;;;;;;;;;,,,,;;:::::ccldkO0XXXXXXNNNNNNNXXXXXXNNXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXXXXXXXXXNNNNXXXKKOxdlc::::;,'',;::,'',,;;;,,;;;;;,,,''',,,,,,'''',:lodddxxxddxxxxddddddxxxxxxxxxxxxxxxxxxxxxxxdxddddxxxxxdddxxxdol:;,''',,,''',,,,,,,,,,,;;;;,,;;;;;,,,,;;:cc::::codk0KKKXXXXNNNNNNXXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXXNXXXXXXXXXXXXXK0Okdl:;;;;;;;,'',;;;;,,,;,,;;;;;;;;;,,,'''''''',''''',;::codxdddxxxxxdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdddxxxxxxddooc:;;,''''',,,'',,,,,',,,,,,,,,,,,;;;;;,,,,;;::::;;;::clodxO0KXXXNNNNNNXXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNXXNNNNXXNNNNNNNNNNXXXXXXNNNXXXXK0OOkxdlc:,,,,;::;,,,,,;;;;,,;;;;;;;;;;;;;,,,'''''''''',,'''''';:clooddxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxddddoolc:,''''''''',,,,,,,,,'',,,,,,,,,,;;;,,,,,,,,;;;;;;;;::::::cldxkOO0KXXXNXXXXXNNNXXXNNNNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNXXXXNNNXXNNNNXXNNNXXXNNNXXXXXXXXXXKK0Okxolc:;;,,,,,;;:;;,,,,;;;;;;,,;;;;;;;,,,,,,,,,,'',,,''',,''''''',,;:cloodddxxxxxxxxxxxxxxxxxxxxxxxxxxxkkkxxxxddolc:;,,''.''''''''',,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,;;;;;;;;:::;;::cllooxkO0KXXXXXXNXXXXXXNNNNNXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNXXNNNNNNNXXXNNNNXNNNXXXXXXXXXXXK0Okxxdoc;,'',,,;;;;;;;;,,,,,;;;;;;,,,;;;;;,,,,,,,,,,,,,,,,,,'''''''''''''',,;;:cloodxxxxxxxxxxkkkxxxxxxxkkkkxxxdolcc:;;,'''''..'''''''''',,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,;;;;;;;;;;;;;;::ccccloodkOKKXXXNXXXXNXXXNNNNNNNXXXNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNNNNNNXXXNNNNNNNNNXXXXXXKK0kxdoollc:;,'',,;;;::;;;,,,,,;;;;;;;,,,,;;;;;;,,,,,,,,,,,,,,,'''''''',,,''''''...',;::clllooooooooooooooooooooollcc:;,,''....''''''''''''',,,,,,,,,,,,,,,,,,,,,,,;;;,,,,,,,;;;;;;;;;;;;;;;:::::::ccldxkO0KXXXNNNNXXNNNNNNNXXXXNNNNNXNNNNNNNNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNXXXXXNNNNNNNNNNNNXXXXKKOkxolc::::::;,,,,;;;;;;;;;,,,,;;;;;;;;;,,;;;;;;;;,,,,,,,,,,,,,,,'''''''',,,,'''''''''''''''',,,;;;;;;;;;;;;;;;;;,,,''''........',,,,''''''''',,,,,,,,,,,,,,,,,,,,,,;;;,,,,'',,;;;;;;;;;;;;;;;;;::::::::clldxkO0KXXXNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNNNNNNNNNNNNXXXXNNNNXXXXNXXXK0OOkxolcc::::::;;,,,;;;;;;;;;;;;;;;;;;:::;;;,;;;;;;;;;,,,,,,,,,,,,,,,,,'''''''''''''''''''''......'''''''....'''''''''''...'''.....''',,'''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;::::::::ccllodxk0KKXXXNNNNNNNNNNNNNNNNNNNNNNXXXNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNXNNNNNNNNNNNNNNNNXXXXXKK0OOkxdolc:::::::::;,,,,,;;;;;;,,;;;;;;;;;;;;;;;;,,,;;;;;;;,,,,,,,,,,,,,,,,,,,''''''''''''''''..'''...'.....................'''''''''''''''''''',,'''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;::::::::ccccclodxkO0KKXXNNNXXXNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNN
//NNNNNNNNNNNXXNNNNNNXXXXNNNNXXKK0Okxolcccc:::;;;;;;;;;,,,,,,,,,;;;;;,;;;;;;;,,;;;;;,,,,,,;;;;,,,,,,,,,,,,,,,,,'',,,,,''''''''''''...........'''''''''........''''.'''''''''''''''''','''''',,,''',,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;,;;;;;;;::::::::ccllodkO00KKXXXXXXNNNNXXNNNNNNNNNNNNXXNNNNNNNNNNN
//NNNNNNNNNNXXXXNXXXXXXXXXXXXXXKkdolcc::::::;;;;;;;;;;;,,,,;;,,,;;;;,,,,;;;;;,,,;;;;,,,,,,,,;,,,,,,,,,,,,,,,,,''''',,,,,,,''''''''''''''''''......''''....'''''''''''''''''',,''''''''''''''',''''',,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;,,,;;;;;;;:::;;:::cccclloddxkOO0KXXXNNNNNNNNNNNNNNNNNXNNNNNNNNNNNN
//NNNNNNNNNNNXXXXXXXXXXXXXXXXK0kdl::::::::;;;;;;;;;;;;;,,,,;;;,;;;;;,,,,;;;;;,,,;;;;,,,,,,,,,,,,,,,,,,,,,'',,,,,,''''''',,,,,,,''''''''''''''''.....''''''''''''''''''''''''''''',,,'''',,,,''''''',,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;,,,,;;;;;;;:::::::::ccccccllooodxkO0KXXNNNNNNNXXXNNNNNNNNNNNNNNNNNN
//NNXXNNNXXNNNNXXXNNXXXXXNXK0kdocc:::;;;;;;;;;;;;;;;;,,,,,,,;;;;;,,,,,,;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,''',,,,,,,''''''''''''''''''''''''''''''''''''',,,,''''''.'''''''''''''''',,,''''',,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::cclllllcclodx0KNNNNNNXXNNNXXXNNNNNNNNNNNNNN
//NXXXNNNNNXXXXXXNNNNNXXXX0kdlcc::::;;;;;;;;;;;;;;;;,,,,,,,,;;;;;,,,;;;;;;;;;;;;;;;,,,,,,,,,,,,,,''',,,,''',,,'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',,,,'''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;,;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::cccccccclloxOKXNNNNNNNNNNXXXNNNNNNNNNNNNN
//NXXXNNNNXXXXXXNXXXXXXXKOxoc::::;;;;;;;;,,;;;;;;;;,,,,,,,,,,;;;;;,,;;;;;;;;;;;;;,,,,;,,,,,'',,,,,',,'''',''''''''''''''''''''''''''''''...''''''''''..'''....''''''''''''''''''''''''''''''',,,,,,,,,,'''',,'',,,,,,,,,,,;;;,,,,,;;;;;;;;;,,,,,;;;;;;;;;;;:::::::::::::ccccllcloxO0XNNNNNNNNXXXXNNNNNNNNNNNNN
//NXXXNNNNXXXXXXNXXXXXKOxdlc::::::;;;;;;;,;;;;,,,;;,,,,,,,,,,,;;;;;;;;;;;;;;;,cdddl;;;,,,:odl,',,',;ldkOOOOkdc;'''',ldo:'',',cdo:''''''coo:'''''''';odc'..,cdo:'''''''':odc,','''''';lddddddol:,',,,,,:dddddddddl,;odo;,,,;,;ldd:,;;;;;;;;;,,,,,;;;;;;;;;;;;;;;;;::::::::ccccccclodkKNNNNNNNNXXXNNNNNNNNNNNNNN
//NNNNNNNNXXXXXXXXXXXKkdlc::::::::::;;;;,,;;;,,,,,;,,,,,,,,,,,,;;;;;;;;;;;;;;,dNWWXx;,;,,oXMO;',';dKWNKOkk0KNW0o;'',oXW0:',',xWM0:''''cKW0c''''''''oNMO;..;OWWKl''''''cKWW0;''''''''cKWWX00KXNXOl;',,,dWMNK00000x;;kWWx;,;,,oXW0:,;;;;;;;;,,,,,,;;;;;;;;;;;;;;;;;;:::::::::ccccccloxOXNNNNNNNNNNXNNNNNNNNNNNNN
//NNNNXXXNNXXXXXXXXK0koc;;::::;;;::;;;;,,,,,;,,,,;;,,,,,,,,,,,,;;;;;;;;;;;;;;,dNMMMNk:,,,lXMO,'':OWNOl;,'',;lONWO:',,dNWO;'':0WMWO:'':0WXl'''''''''lNMO;..;OWMWKc''''cKMMM0;','''','cKMXl,,;:lONNO:',,dWMO;,;,,;,,,:OWNd,,,lKMKc,,;;;;;;;,,,,,,;;;;;;;;;;;;;;;;;;;;;;::::::cccccccldk0KXXXXXNNNNXXXNNNNNNNNNNN
//XNNNXXXXNXXXXXXXKOxoc:;::;;::;;;;;;;,,,,,,,,,,,;;,,,,,,,,,,,,;;;;;;;;;;;;;;,dWMXOXW0l,,lXMO;',kWWk;',,,,,,';kWWx,'',xWWk;;OWWWWWk,;OWNd''''''''''lXMO;'.;OMMWWKc'':0MMMM0;''''''''cKMK:',,,',xWWk;',dWMO:;;;;;,,,,:0WXo,c0WXl,,,;;;;;;;;,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;:::::::ccccodkOKXXNNNNNNNNNNNNNNNNNNNN
//NNNXXXXXXXXXNNXKOdlc::::;;;:::;;,,,,,,,,,,,,,,,;;,,,,,,,,,,,,;;;;;;;;;;;;;;,dWMk,c0WXd,lXMO;':0MNo',,,,,,,,'oNM0;',';OWW00WWklkWN0KWWx,''''''''''lNMO;..;OMMNNWKlc0WWNWM0;','''',':KMK:',,,,'lXMK:',dWMWXKKKK0l,,,,cKWXk0WNd,,,,;;;;;;;;,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;::::::cccclodkOKXNNNNXXNNNNNNNNNNNNNN
//NXXXNNNXXXXXXXKOxl:;:::;;,;;::;,,,,,,,,,,,,,,;;;,,''',,,,,,,,,,,;;;;;;;;;;;,dNMk;,:kNN00WMO;';kWWx,,,,,,,,',xWWk,',,':0WMMWk;.;OWMMWO;'''''''''''lNMO;..;OMNdlKWNNWXloXW0;'''''',':KMK:',,,',xWMO;',dWWKdloool:,,,,,lXMWMNd,,,,,;;;;;;;;,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::cccclodxOKXNNXXXXNNNNNNNNNNNNN
//NXXXNNNXXXXXXKOxl::;;;;;;;;;,,,;;;;,,,,,,,,,;;;;,,''',,,,;;;,,,,,,;;;;;;;;;,dWMk;,,;dXWMMMO;',cKWNkc,'''',ckNW0c',,,,':0WW0:''':0WW0:''''''''''''lNMO;.';OMNl.lKWWXl.cXM0;'''''',':KMKc',,;ckNW0c,,,dWWk,',,,,,,,,,,,oXMWk;,,,,,;;;;;;;,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::cccccllox0XXNXXXXNNNNNNNNNNNNN
//NXXXXNXXXXXX0kdlc::;;;;;;;;,,',;;;;,,',,,,,,;;;;,'''',,,,;;;,,,,,,;;;;;;;;;,dWMk;,;,,lKWWWO;',,:kXWXOkxxk0NWXx:'',,,,''cKKc','''cKKc'''''''''''''lNMO;.';OWNl.'lXXo,.cXM0;'''''','cKMWKOO0XWN0d:,,,,dWMXOxkkkkx:',,,;;dNO:,;,,,,;;;;;;;,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;::::ccccccclok0XXNNNNNNNNNNNNNNNNN
//XXXXXXXXXXXKOdlc:::;;;;;;;;,,,,;;,,,'',,,,,,;;;,,'''',,,,,,,,,,,,,;;;;;;;;;,cxkl,,;;,,cdxkl,,,,,,:oxOKKK0Oxo:,',',,,,'',cc,''''''cc'''''''''''''':dxl,'',oxd:'',ll,'';dxo,'''''',';dxxxxkxxol;',,,,,cxkkkkkkkxx:',,,;,;l:,;;,,,,;;;;;;,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::ccccccldk0XXNNNNXNNNNNNNNNNN
//XXXXXXXXXXKOxlc:::::;;;,,;,,,;;,,''''',,,,,,;;;,''''',,,,,,,,,,,;;;;;;,,;;;,,,,,,;;;,,,,'''',,,,,,,',,,;,,'',,,,,,,,,,,''''''''''''''''''''''''''''''','''''',,,''''''''''''''',,,,''''''''',,,,,,,,,,,,,,,,,,,,,,,,;;;,,;;,,,,,;;;;;;,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::cccccldk0XNNNNXNNNNNNNNNNN
//XXXXNNNXXX0koc::;;;;;;;,;;,,,,,,'',,'',,,,,,;;;,'''',,,,,,,,,,,;;;;;;,,,;;;;;,,;;;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''''''''''''''''''''''',,',,,,,,,,,,,,,''''''''''',,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;,,,,,;;;;;;;,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::ccccccldk0XNNNNNNNNNNNNNNN
//XXXXXXXXK0kdc:;;;;;;;;;;;;,'',,,,,,,,'',,,,,,;;,'''',,,,,,,,,;;;;;;;;,,,;;;,;;;;;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''',''',''',,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''','',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;,,,,,,;;;;;;,,,,,,,,,;;;;;;;;,,,;;;;;;;;;;;;;;;;;;;;;::::cccccldkKXNNNNNNNNNNNNNN
//XXXXXXXKOkdl:;;;;;;,,;;;,,,'',,,,,,,,,,,,,,,,,,,'''',,,,,,,,,;;;;;;;;,,,;;;;;;;;;,,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;,,,,;;;;;;;,,,,,,,,,,;;;;;,,,,,,;;;;;;;;;;;;;;;;;:::::::cccccoxOKXXNNNNNNNNNNNN
//XXXXXXX0kdlc:;;;;;;,,,;;,,,'',,,,,,,,,',,,,,,,,,'''',,,,,,,,;;;;;;;;,,,,;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;,,,,;;;;;;,,,,,,,,,,;;;;;,,,,,,;;;;;,,;;;;;;;;;;;::::::cccccloxOKXXNNNNNNNNNNN
//XXXXXXKOxoc:;;;;;;;,,,,,,,,'',,,,,,,,''',,,,,,,,'''',,,,,,;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;,,,;;;;;;,,,,,,,,,,;;;;;,,,,,,;;;;,,,;;;;;;;;;;;;;;::::::::cldk0KXNNNNNNNNNNN
//XXNNXX0koc:;;;;;;;,,,,,,,,'''',,,,,,,''',,,,,,,,'''',,,,,;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;,,,;;;;;,,,,,,,,,,,;;;;;,,,,,,,,;,,,,;;;;;;;;;;;;;;::::::::clodk0KXNNNNNNNNNN
//XXXNXX0xl;;,;;;;;,,,,,,,,,'''',,,,,,''''',,,,,,,'''',,,,,;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;,,,,,,,,,,,;;;;;;;;;;,,;;;,,,,,,,,,,,,,,;;;,,,,,,,,,,,,,,,;;;;;;;;;;;;:::;::ccccclodkKXNNNNNNNNNN
//NNNNXK0dc;,,;;;;;;,,,,,;,,,,,,,,,,,,,,,,,,,,,;,,''',,,;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;,,,;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,;;;;;;;;;;;;;;;;;,,,;;::;;;;;;::::::;::clllclldk0XNNNNNNNNNN


// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval (address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract OnlyDevs is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=14; //SNIPERS
    uint256 private _initialSellTax=24; //JEETS
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _reduceBuyTaxAt=29;
    uint256 private _reduceSellTaxAt=34;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"OnlyDevs";
    string private constant _symbol = unicode"OnlyDevs";
    uint256 public _maxTxAmount = 12200000 * 10**_decimals;
    uint256 public _maxWalletSize = 122000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 12000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 12000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {

        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function setTaxRates(uint256 newInitialBuyTax, uint256 newInitialSellTax, uint256 newFinalBuyTax, uint256 newFinalSellTax) external onlyOwner {
    _initialBuyTax = newInitialBuyTax;
    _initialSellTax = newInitialSellTax;
    _finalBuyTax = newFinalBuyTax;
    _finalSellTax = newFinalSellTax;
    }

    function setTaxWallet(address newTaxWallet) external onlyOwner {
    require(newTaxWallet != address(0), "Invalid tax wallet address");
    _taxWallet = payable(newTaxWallet);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newInitialBuyTax","type":"uint256"},{"internalType":"uint256","name":"newInitialSellTax","type":"uint256"},{"internalType":"uint256","name":"newFinalBuyTax","type":"uint256"},{"internalType":"uint256","name":"newFinalSellTax","type":"uint256"}],"name":"setTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600e600755601860085560056009556005600a55601d600b556022600c556014600d555f600e556009600a6200003b9190620005f1565b62ba28406200004b919062000641565b600f556009600a6200005e9190620005f1565b63074592806200006f919062000641565b6010556009600a620000829190620005f1565b62b71b0062000092919062000641565b6011556009600a620000a59190620005f1565b62b71b00620000b5919062000641565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550348015620000f8575f80fd5b505f6200010a6200043160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001b66200043160201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002059190620005f1565b6305f5e10062000216919062000641565b60015f620002296200043160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200027b6200043860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003a56200043160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004039190620005f1565b6305f5e10062000414919062000641565b6040516200042391906200069c565b60405180910390a3620006b7565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004e957808604811115620004c157620004c06200045f565b5b6001851615620004d15780820291505b8081029050620004e1856200048c565b9450620004a1565b94509492505050565b5f82620005035760019050620005d5565b8162000512575f9050620005d5565b81600181146200052b576002811462000536576200056c565b6001915050620005d5565b60ff8411156200054b576200054a6200045f565b5b8360020a9150848211156200056557620005646200045f565b5b50620005d5565b5060208310610133831016604e8410600b8410161715620005a65782820a905083811115620005a0576200059f6200045f565b5b620005d5565b620005b5848484600162000498565b92509050818404811115620005cf57620005ce6200045f565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620005fd82620005dc565b91506200060a83620005e5565b9250620006397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004f2565b905092915050565b5f6200064d82620005dc565b91506200065a83620005dc565b92508282026200066a81620005dc565b915082820484148315176200068457620006836200045f565b5b5092915050565b6200069681620005dc565b82525050565b5f602082019050620006b15f8301846200068b565b92915050565b6135bf80620006c55f395ff3fe608060405260043610610137575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103fe578063bf474bed1461043a578063c9567bf914610464578063d34628cc1461047a578063dd62ed3e146104a2578063ea414b28146104de5761013e565b8063751039fc146103405780637d1db4a5146103565780638da5cb5b146103805780638f9a55c0146103aa57806395d89b41146103d45761013e565b806323b872dd116100fc57806323b872dd14610224578063313ce5671461026057806331c2d8471461028a5780633bbac579146102b257806370a08231146102ee578063715018a61461032a5761013e565b8062d2eef21461014257806306fdde031461016a578063095ea7b3146101945780630faee56f146101d057806318160ddd146101fa5761013e565b3661013e57005b5f80fd5b34801561014d575f80fd5b50610168600480360381019061016391906124ec565b610506565b005b348015610175575f80fd5b5061017e6105bc565b60405161018b91906125da565b60405180910390f35b34801561019f575f80fd5b506101ba60048036038101906101b59190612654565b6105f9565b6040516101c791906126ac565b60405180910390f35b3480156101db575f80fd5b506101e4610616565b6040516101f191906126d4565b60405180910390f35b348015610205575f80fd5b5061020e61061c565b60405161021b91906126d4565b60405180910390f35b34801561022f575f80fd5b5061024a600480360381019061024591906126ed565b61063f565b60405161025791906126ac565b60405180910390f35b34801561026b575f80fd5b50610274610713565b6040516102819190612758565b60405180910390f35b348015610295575f80fd5b506102b060048036038101906102ab91906128b1565b61071b565b005b3480156102bd575f80fd5b506102d860048036038101906102d391906128f8565b61083f565b6040516102e591906126ac565b60405180910390f35b3480156102f9575f80fd5b50610314600480360381019061030f91906128f8565b610891565b60405161032191906126d4565b60405180910390f35b348015610335575f80fd5b5061033e6108d7565b005b34801561034b575f80fd5b50610354610a25565b005b348015610361575f80fd5b5061036a610b54565b60405161037791906126d4565b60405180910390f35b34801561038b575f80fd5b50610394610b5a565b6040516103a19190612932565b60405180910390f35b3480156103b5575f80fd5b506103be610b81565b6040516103cb91906126d4565b60405180910390f35b3480156103df575f80fd5b506103e8610b87565b6040516103f591906125da565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f9190612654565b610bc4565b60405161043191906126ac565b60405180910390f35b348015610445575f80fd5b5061044e610be1565b60405161045b91906126d4565b60405180910390f35b34801561046f575f80fd5b50610478610be7565b005b348015610485575f80fd5b506104a0600480360381019061049b91906128b1565b61110d565b005b3480156104ad575f80fd5b506104c860048036038101906104c3919061294b565b611232565b6040516104d591906126d4565b60405180910390f35b3480156104e9575f80fd5b5061050460048036038101906104ff91906128f8565b6112b4565b005b61050e6113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461059a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610591906129d3565b60405180910390fd5b83600781905550826008819055508160098190555080600a8190555050505050565b60606040518060400160405280600881526020017f4f6e6c7944657673000000000000000000000000000000000000000000000000815250905090565b5f61060c6106056113f9565b8484611400565b6001905092915050565b60125481565b5f6009600a61062b9190612b4d565b6305f5e10061063a9190612b97565b905090565b5f61064b8484846115c3565b610708846106576113f9565b610703856040518060600160405280602881526020016135626028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106ba6113f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f839092919063ffffffff16565b611400565b600190509392505050565b5f6009905090565b6107236113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a6906129d3565b60405180910390fd5b5f5b815181101561083b575f60045f8484815181106107d1576107d0612bd8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061083390612c05565b9150506107b1565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108df6113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906129d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a2d6113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab0906129d3565b60405180910390fd5b6009600a610ac79190612b4d565b6305f5e100610ad69190612b97565b600f819055506009600a610aea9190612b4d565b6305f5e100610af99190612b97565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b2e9190612b4d565b6305f5e100610b3d9190612b97565b604051610b4a91906126d4565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600881526020017f4f6e6c7944657673000000000000000000000000000000000000000000000000815250905090565b5f610bd7610bd06113f9565b84846115c3565b6001905092915050565b60115481565b610bef6113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c72906129d3565b60405180910390fd5b60148054906101000a900460ff1615610cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc090612c96565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d653060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d519190612b4d565b6305f5e100610d609190612b97565b611400565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df39190612cc8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9d9190612cc8565b6040518363ffffffff1660e01b8152600401610eba929190612cf3565b6020604051808303815f875af1158015610ed6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efa9190612cc8565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f8130610891565b5f80610f8b610b5a565b426040518863ffffffff1660e01b8152600401610fad96959493929190612d5c565b60606040518083038185885af1158015610fc9573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fee9190612dcf565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161108e929190612e1f565b6020604051808303815f875af11580156110aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ce9190612e70565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600681905550565b6111156113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611198906129d3565b60405180910390fd5b5f5b815181101561122e57600160045f8484815181106111c4576111c3612bd8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061122690612c05565b9150506111a3565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6112bc6113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133f906129d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad90612ee5565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146590612f73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d390613001565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115b691906126d4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611631576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116289061308f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116969061311d565b60405180910390fd5b5f81116116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d8906131ab565b60405180910390fd5b5f6116ea610b5a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117585750611728610b5a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cd35760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117fb575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611803575f80fd5b61183f6064611831600b54600e541161181e57600754611822565b6009545b85611fe590919063ffffffff16565b61205c90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118ea575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561193d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a2057600f54821115611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197e90613213565b60405180910390fd5b6010548261199485610891565b61199e9190613231565b11156119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d6906132ae565b60405180910390fd5b4360036006546119ef9190613231565b1115611a08576119fe836120a5565b15611a07575f80fd5b5b600e5f815480929190611a1a90612c05565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ac4575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b225760105482611ad685610891565b611ae09190613231565b1115611b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b18906132ae565b60405180910390fd5b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611baa57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bee57611beb6064611bdd600c54600e5411611bca57600854611bce565b600a545b85611fe590919063ffffffff16565b61205c90919063ffffffff16565b90505b5f611bf830610891565b9050601460159054906101000a900460ff16158015611c63575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c7b5750601460169054906101000a900460ff165b8015611c88575060115481115b8015611c975750600d54600e54115b15611cd157611cb9611cb484611caf846012546120b6565b6120b6565b6120ce565b5f4790505f811115611ccf57611cce47612339565b5b505b505b5f811115611dd257611d2b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611dc991906126d4565b60405180910390a35b611e228260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123fe90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ec5611e7982846123fe90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f6884866123fe90919063ffffffff16565b604051611f7591906126d4565b60405180910390a350505050565b5f838311158290611fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc191906125da565b60405180910390fd5b505f8385611fd891906132cc565b9050809150509392505050565b5f808303611ff5575f9050612056565b5f82846120029190612b97565b9050828482612011919061332c565b14612051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612048906133cc565b60405180910390fd5b809150505b92915050565b5f61209d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612447565b905092915050565b5f80823b90505f8111915050919050565b5f8183116120c457826120c6565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561210557612104612775565b5b6040519080825280602002602001820160405280156121335781602001602082028036833780820191505090505b50905030815f8151811061214a57612149612bd8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122129190612cc8565b8160018151811061222657612225612bd8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061228c3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611400565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122ee9594939291906134a1565b5f604051808303815f87803b158015612305575f80fd5b505af1158015612317573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561239d573d5f803e3d5ffd5b5050565b5f8082846123af9190613231565b9050838110156123f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123eb90613543565b60405180910390fd5b8091505092915050565b5f61243f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f83565b905092915050565b5f808311829061248d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248491906125da565b60405180910390fd5b505f838561249b919061332c565b9050809150509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6124cb816124b9565b81146124d5575f80fd5b50565b5f813590506124e6816124c2565b92915050565b5f805f8060808587031215612504576125036124b1565b5b5f612511878288016124d8565b9450506020612522878288016124d8565b9350506040612533878288016124d8565b9250506060612544878288016124d8565b91505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561258757808201518184015260208101905061256c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6125ac82612550565b6125b6818561255a565b93506125c681856020860161256a565b6125cf81612592565b840191505092915050565b5f6020820190508181035f8301526125f281846125a2565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612623826125fa565b9050919050565b61263381612619565b811461263d575f80fd5b50565b5f8135905061264e8161262a565b92915050565b5f806040838503121561266a576126696124b1565b5b5f61267785828601612640565b9250506020612688858286016124d8565b9150509250929050565b5f8115159050919050565b6126a681612692565b82525050565b5f6020820190506126bf5f83018461269d565b92915050565b6126ce816124b9565b82525050565b5f6020820190506126e75f8301846126c5565b92915050565b5f805f60608486031215612704576127036124b1565b5b5f61271186828701612640565b935050602061272286828701612640565b9250506040612733868287016124d8565b9150509250925092565b5f60ff82169050919050565b6127528161273d565b82525050565b5f60208201905061276b5f830184612749565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6127ab82612592565b810181811067ffffffffffffffff821117156127ca576127c9612775565b5b80604052505050565b5f6127dc6124a8565b90506127e882826127a2565b919050565b5f67ffffffffffffffff82111561280757612806612775565b5b602082029050602081019050919050565b5f80fd5b5f61282e612829846127ed565b6127d3565b9050808382526020820190506020840283018581111561285157612850612818565b5b835b8181101561287a57806128668882612640565b845260208401935050602081019050612853565b5050509392505050565b5f82601f83011261289857612897612771565b5b81356128a884826020860161281c565b91505092915050565b5f602082840312156128c6576128c56124b1565b5b5f82013567ffffffffffffffff8111156128e3576128e26124b5565b5b6128ef84828501612884565b91505092915050565b5f6020828403121561290d5761290c6124b1565b5b5f61291a84828501612640565b91505092915050565b61292c81612619565b82525050565b5f6020820190506129455f830184612923565b92915050565b5f8060408385031215612961576129606124b1565b5b5f61296e85828601612640565b925050602061297f85828601612640565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129bd60208361255a565b91506129c882612989565b602082019050919050565b5f6020820190508181035f8301526129ea816129b1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a7357808604811115612a4f57612a4e6129f1565b5b6001851615612a5e5780820291505b8081029050612a6c85612a1e565b9450612a33565b94509492505050565b5f82612a8b5760019050612b46565b81612a98575f9050612b46565b8160018114612aae5760028114612ab857612ae7565b6001915050612b46565b60ff841115612aca57612ac96129f1565b5b8360020a915084821115612ae157612ae06129f1565b5b50612b46565b5060208310610133831016604e8410600b8410161715612b1c5782820a905083811115612b1757612b166129f1565b5b612b46565b612b298484846001612a2a565b92509050818404811115612b4057612b3f6129f1565b5b81810290505b9392505050565b5f612b57826124b9565b9150612b628361273d565b9250612b8f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a7c565b905092915050565b5f612ba1826124b9565b9150612bac836124b9565b9250828202612bba816124b9565b91508282048414831517612bd157612bd06129f1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612c0f826124b9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c4157612c406129f1565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c8060178361255a565b9150612c8b82612c4c565b602082019050919050565b5f6020820190508181035f830152612cad81612c74565b9050919050565b5f81519050612cc28161262a565b92915050565b5f60208284031215612cdd57612cdc6124b1565b5b5f612cea84828501612cb4565b91505092915050565b5f604082019050612d065f830185612923565b612d136020830184612923565b9392505050565b5f819050919050565b5f819050919050565b5f612d46612d41612d3c84612d1a565b612d23565b6124b9565b9050919050565b612d5681612d2c565b82525050565b5f60c082019050612d6f5f830189612923565b612d7c60208301886126c5565b612d896040830187612d4d565b612d966060830186612d4d565b612da36080830185612923565b612db060a08301846126c5565b979650505050505050565b5f81519050612dc9816124c2565b92915050565b5f805f60608486031215612de657612de56124b1565b5b5f612df386828701612dbb565b9350506020612e0486828701612dbb565b9250506040612e1586828701612dbb565b9150509250925092565b5f604082019050612e325f830185612923565b612e3f60208301846126c5565b9392505050565b612e4f81612692565b8114612e59575f80fd5b50565b5f81519050612e6a81612e46565b92915050565b5f60208284031215612e8557612e846124b1565b5b5f612e9284828501612e5c565b91505092915050565b7f496e76616c6964207461782077616c6c657420616464726573730000000000005f82015250565b5f612ecf601a8361255a565b9150612eda82612e9b565b602082019050919050565b5f6020820190508181035f830152612efc81612ec3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f5d60248361255a565b9150612f6882612f03565b604082019050919050565b5f6020820190508181035f830152612f8a81612f51565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612feb60228361255a565b9150612ff682612f91565b604082019050919050565b5f6020820190508181035f83015261301881612fdf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61307960258361255a565b91506130848261301f565b604082019050919050565b5f6020820190508181035f8301526130a68161306d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61310760238361255a565b9150613112826130ad565b604082019050919050565b5f6020820190508181035f830152613134816130fb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61319560298361255a565b91506131a08261313b565b604082019050919050565b5f6020820190508181035f8301526131c281613189565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6131fd60198361255a565b9150613208826131c9565b602082019050919050565b5f6020820190508181035f83015261322a816131f1565b9050919050565b5f61323b826124b9565b9150613246836124b9565b925082820190508082111561325e5761325d6129f1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613298601a8361255a565b91506132a382613264565b602082019050919050565b5f6020820190508181035f8301526132c58161328c565b9050919050565b5f6132d6826124b9565b91506132e1836124b9565b92508282039050818111156132f9576132f86129f1565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613336826124b9565b9150613341836124b9565b925082613351576133506132ff565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133b660218361255a565b91506133c18261335c565b604082019050919050565b5f6020820190508181035f8301526133e3816133aa565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61341c81612619565b82525050565b5f61342d8383613413565b60208301905092915050565b5f602082019050919050565b5f61344f826133ea565b61345981856133f4565b935061346483613404565b805f5b8381101561349457815161347b8882613422565b975061348683613439565b925050600181019050613467565b5085935050505092915050565b5f60a0820190506134b45f8301886126c5565b6134c16020830187612d4d565b81810360408301526134d38186613445565b90506134e26060830185612923565b6134ef60808301846126c5565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61352d601b8361255a565b9150613538826134f9565b602082019050919050565b5f6020820190508181035f83015261355a81613521565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220476bba5dd8d2fdeff06f610f42835b54e318348c88348bb0f1d7f1b6aaf93a1564736f6c63430008140033

Deployed Bytecode

0x608060405260043610610137575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103fe578063bf474bed1461043a578063c9567bf914610464578063d34628cc1461047a578063dd62ed3e146104a2578063ea414b28146104de5761013e565b8063751039fc146103405780637d1db4a5146103565780638da5cb5b146103805780638f9a55c0146103aa57806395d89b41146103d45761013e565b806323b872dd116100fc57806323b872dd14610224578063313ce5671461026057806331c2d8471461028a5780633bbac579146102b257806370a08231146102ee578063715018a61461032a5761013e565b8062d2eef21461014257806306fdde031461016a578063095ea7b3146101945780630faee56f146101d057806318160ddd146101fa5761013e565b3661013e57005b5f80fd5b34801561014d575f80fd5b50610168600480360381019061016391906124ec565b610506565b005b348015610175575f80fd5b5061017e6105bc565b60405161018b91906125da565b60405180910390f35b34801561019f575f80fd5b506101ba60048036038101906101b59190612654565b6105f9565b6040516101c791906126ac565b60405180910390f35b3480156101db575f80fd5b506101e4610616565b6040516101f191906126d4565b60405180910390f35b348015610205575f80fd5b5061020e61061c565b60405161021b91906126d4565b60405180910390f35b34801561022f575f80fd5b5061024a600480360381019061024591906126ed565b61063f565b60405161025791906126ac565b60405180910390f35b34801561026b575f80fd5b50610274610713565b6040516102819190612758565b60405180910390f35b348015610295575f80fd5b506102b060048036038101906102ab91906128b1565b61071b565b005b3480156102bd575f80fd5b506102d860048036038101906102d391906128f8565b61083f565b6040516102e591906126ac565b60405180910390f35b3480156102f9575f80fd5b50610314600480360381019061030f91906128f8565b610891565b60405161032191906126d4565b60405180910390f35b348015610335575f80fd5b5061033e6108d7565b005b34801561034b575f80fd5b50610354610a25565b005b348015610361575f80fd5b5061036a610b54565b60405161037791906126d4565b60405180910390f35b34801561038b575f80fd5b50610394610b5a565b6040516103a19190612932565b60405180910390f35b3480156103b5575f80fd5b506103be610b81565b6040516103cb91906126d4565b60405180910390f35b3480156103df575f80fd5b506103e8610b87565b6040516103f591906125da565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f9190612654565b610bc4565b60405161043191906126ac565b60405180910390f35b348015610445575f80fd5b5061044e610be1565b60405161045b91906126d4565b60405180910390f35b34801561046f575f80fd5b50610478610be7565b005b348015610485575f80fd5b506104a0600480360381019061049b91906128b1565b61110d565b005b3480156104ad575f80fd5b506104c860048036038101906104c3919061294b565b611232565b6040516104d591906126d4565b60405180910390f35b3480156104e9575f80fd5b5061050460048036038101906104ff91906128f8565b6112b4565b005b61050e6113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461059a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610591906129d3565b60405180910390fd5b83600781905550826008819055508160098190555080600a8190555050505050565b60606040518060400160405280600881526020017f4f6e6c7944657673000000000000000000000000000000000000000000000000815250905090565b5f61060c6106056113f9565b8484611400565b6001905092915050565b60125481565b5f6009600a61062b9190612b4d565b6305f5e10061063a9190612b97565b905090565b5f61064b8484846115c3565b610708846106576113f9565b610703856040518060600160405280602881526020016135626028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106ba6113f9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f839092919063ffffffff16565b611400565b600190509392505050565b5f6009905090565b6107236113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a6906129d3565b60405180910390fd5b5f5b815181101561083b575f60045f8484815181106107d1576107d0612bd8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061083390612c05565b9150506107b1565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108df6113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906129d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a2d6113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab0906129d3565b60405180910390fd5b6009600a610ac79190612b4d565b6305f5e100610ad69190612b97565b600f819055506009600a610aea9190612b4d565b6305f5e100610af99190612b97565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b2e9190612b4d565b6305f5e100610b3d9190612b97565b604051610b4a91906126d4565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600881526020017f4f6e6c7944657673000000000000000000000000000000000000000000000000815250905090565b5f610bd7610bd06113f9565b84846115c3565b6001905092915050565b60115481565b610bef6113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c72906129d3565b60405180910390fd5b60148054906101000a900460ff1615610cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc090612c96565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d653060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d519190612b4d565b6305f5e100610d609190612b97565b611400565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dcf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df39190612cc8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9d9190612cc8565b6040518363ffffffff1660e01b8152600401610eba929190612cf3565b6020604051808303815f875af1158015610ed6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efa9190612cc8565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f8130610891565b5f80610f8b610b5a565b426040518863ffffffff1660e01b8152600401610fad96959493929190612d5c565b60606040518083038185885af1158015610fc9573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fee9190612dcf565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161108e929190612e1f565b6020604051808303815f875af11580156110aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ce9190612e70565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600681905550565b6111156113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611198906129d3565b60405180910390fd5b5f5b815181101561122e57600160045f8484815181106111c4576111c3612bd8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061122690612c05565b9150506111a3565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6112bc6113f9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133f906129d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad90612ee5565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146590612f73565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d390613001565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115b691906126d4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611631576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116289061308f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116969061311d565b60405180910390fd5b5f81116116e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d8906131ab565b60405180910390fd5b5f6116ea610b5a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117585750611728610b5a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cd35760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117fb575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611803575f80fd5b61183f6064611831600b54600e541161181e57600754611822565b6009545b85611fe590919063ffffffff16565b61205c90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118ea575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561193d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a2057600f54821115611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197e90613213565b60405180910390fd5b6010548261199485610891565b61199e9190613231565b11156119df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d6906132ae565b60405180910390fd5b4360036006546119ef9190613231565b1115611a08576119fe836120a5565b15611a07575f80fd5b5b600e5f815480929190611a1a90612c05565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ac4575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611b225760105482611ad685610891565b611ae09190613231565b1115611b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b18906132ae565b60405180910390fd5b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611baa57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bee57611beb6064611bdd600c54600e5411611bca57600854611bce565b600a545b85611fe590919063ffffffff16565b61205c90919063ffffffff16565b90505b5f611bf830610891565b9050601460159054906101000a900460ff16158015611c63575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c7b5750601460169054906101000a900460ff165b8015611c88575060115481115b8015611c975750600d54600e54115b15611cd157611cb9611cb484611caf846012546120b6565b6120b6565b6120ce565b5f4790505f811115611ccf57611cce47612339565b5b505b505b5f811115611dd257611d2b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611dc991906126d4565b60405180910390a35b611e228260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123fe90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ec5611e7982846123fe90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f6884866123fe90919063ffffffff16565b604051611f7591906126d4565b60405180910390a350505050565b5f838311158290611fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc191906125da565b60405180910390fd5b505f8385611fd891906132cc565b9050809150509392505050565b5f808303611ff5575f9050612056565b5f82846120029190612b97565b9050828482612011919061332c565b14612051576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612048906133cc565b60405180910390fd5b809150505b92915050565b5f61209d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612447565b905092915050565b5f80823b90505f8111915050919050565b5f8183116120c457826120c6565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561210557612104612775565b5b6040519080825280602002602001820160405280156121335781602001602082028036833780820191505090505b50905030815f8151811061214a57612149612bd8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122129190612cc8565b8160018151811061222657612225612bd8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061228c3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611400565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122ee9594939291906134a1565b5f604051808303815f87803b158015612305575f80fd5b505af1158015612317573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561239d573d5f803e3d5ffd5b5050565b5f8082846123af9190613231565b9050838110156123f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123eb90613543565b60405180910390fd5b8091505092915050565b5f61243f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f83565b905092915050565b5f808311829061248d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248491906125da565b60405180910390fd5b505f838561249b919061332c565b9050809150509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6124cb816124b9565b81146124d5575f80fd5b50565b5f813590506124e6816124c2565b92915050565b5f805f8060808587031215612504576125036124b1565b5b5f612511878288016124d8565b9450506020612522878288016124d8565b9350506040612533878288016124d8565b9250506060612544878288016124d8565b91505092959194509250565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561258757808201518184015260208101905061256c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6125ac82612550565b6125b6818561255a565b93506125c681856020860161256a565b6125cf81612592565b840191505092915050565b5f6020820190508181035f8301526125f281846125a2565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612623826125fa565b9050919050565b61263381612619565b811461263d575f80fd5b50565b5f8135905061264e8161262a565b92915050565b5f806040838503121561266a576126696124b1565b5b5f61267785828601612640565b9250506020612688858286016124d8565b9150509250929050565b5f8115159050919050565b6126a681612692565b82525050565b5f6020820190506126bf5f83018461269d565b92915050565b6126ce816124b9565b82525050565b5f6020820190506126e75f8301846126c5565b92915050565b5f805f60608486031215612704576127036124b1565b5b5f61271186828701612640565b935050602061272286828701612640565b9250506040612733868287016124d8565b9150509250925092565b5f60ff82169050919050565b6127528161273d565b82525050565b5f60208201905061276b5f830184612749565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6127ab82612592565b810181811067ffffffffffffffff821117156127ca576127c9612775565b5b80604052505050565b5f6127dc6124a8565b90506127e882826127a2565b919050565b5f67ffffffffffffffff82111561280757612806612775565b5b602082029050602081019050919050565b5f80fd5b5f61282e612829846127ed565b6127d3565b9050808382526020820190506020840283018581111561285157612850612818565b5b835b8181101561287a57806128668882612640565b845260208401935050602081019050612853565b5050509392505050565b5f82601f83011261289857612897612771565b5b81356128a884826020860161281c565b91505092915050565b5f602082840312156128c6576128c56124b1565b5b5f82013567ffffffffffffffff8111156128e3576128e26124b5565b5b6128ef84828501612884565b91505092915050565b5f6020828403121561290d5761290c6124b1565b5b5f61291a84828501612640565b91505092915050565b61292c81612619565b82525050565b5f6020820190506129455f830184612923565b92915050565b5f8060408385031215612961576129606124b1565b5b5f61296e85828601612640565b925050602061297f85828601612640565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129bd60208361255a565b91506129c882612989565b602082019050919050565b5f6020820190508181035f8301526129ea816129b1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a7357808604811115612a4f57612a4e6129f1565b5b6001851615612a5e5780820291505b8081029050612a6c85612a1e565b9450612a33565b94509492505050565b5f82612a8b5760019050612b46565b81612a98575f9050612b46565b8160018114612aae5760028114612ab857612ae7565b6001915050612b46565b60ff841115612aca57612ac96129f1565b5b8360020a915084821115612ae157612ae06129f1565b5b50612b46565b5060208310610133831016604e8410600b8410161715612b1c5782820a905083811115612b1757612b166129f1565b5b612b46565b612b298484846001612a2a565b92509050818404811115612b4057612b3f6129f1565b5b81810290505b9392505050565b5f612b57826124b9565b9150612b628361273d565b9250612b8f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a7c565b905092915050565b5f612ba1826124b9565b9150612bac836124b9565b9250828202612bba816124b9565b91508282048414831517612bd157612bd06129f1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612c0f826124b9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c4157612c406129f1565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c8060178361255a565b9150612c8b82612c4c565b602082019050919050565b5f6020820190508181035f830152612cad81612c74565b9050919050565b5f81519050612cc28161262a565b92915050565b5f60208284031215612cdd57612cdc6124b1565b5b5f612cea84828501612cb4565b91505092915050565b5f604082019050612d065f830185612923565b612d136020830184612923565b9392505050565b5f819050919050565b5f819050919050565b5f612d46612d41612d3c84612d1a565b612d23565b6124b9565b9050919050565b612d5681612d2c565b82525050565b5f60c082019050612d6f5f830189612923565b612d7c60208301886126c5565b612d896040830187612d4d565b612d966060830186612d4d565b612da36080830185612923565b612db060a08301846126c5565b979650505050505050565b5f81519050612dc9816124c2565b92915050565b5f805f60608486031215612de657612de56124b1565b5b5f612df386828701612dbb565b9350506020612e0486828701612dbb565b9250506040612e1586828701612dbb565b9150509250925092565b5f604082019050612e325f830185612923565b612e3f60208301846126c5565b9392505050565b612e4f81612692565b8114612e59575f80fd5b50565b5f81519050612e6a81612e46565b92915050565b5f60208284031215612e8557612e846124b1565b5b5f612e9284828501612e5c565b91505092915050565b7f496e76616c6964207461782077616c6c657420616464726573730000000000005f82015250565b5f612ecf601a8361255a565b9150612eda82612e9b565b602082019050919050565b5f6020820190508181035f830152612efc81612ec3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612f5d60248361255a565b9150612f6882612f03565b604082019050919050565b5f6020820190508181035f830152612f8a81612f51565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612feb60228361255a565b9150612ff682612f91565b604082019050919050565b5f6020820190508181035f83015261301881612fdf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61307960258361255a565b91506130848261301f565b604082019050919050565b5f6020820190508181035f8301526130a68161306d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61310760238361255a565b9150613112826130ad565b604082019050919050565b5f6020820190508181035f830152613134816130fb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61319560298361255a565b91506131a08261313b565b604082019050919050565b5f6020820190508181035f8301526131c281613189565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6131fd60198361255a565b9150613208826131c9565b602082019050919050565b5f6020820190508181035f83015261322a816131f1565b9050919050565b5f61323b826124b9565b9150613246836124b9565b925082820190508082111561325e5761325d6129f1565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613298601a8361255a565b91506132a382613264565b602082019050919050565b5f6020820190508181035f8301526132c58161328c565b9050919050565b5f6132d6826124b9565b91506132e1836124b9565b92508282039050818111156132f9576132f86129f1565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613336826124b9565b9150613341836124b9565b925082613351576133506132ff565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133b660218361255a565b91506133c18261335c565b604082019050919050565b5f6020820190508181035f8301526133e3816133aa565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61341c81612619565b82525050565b5f61342d8383613413565b60208301905092915050565b5f602082019050919050565b5f61344f826133ea565b61345981856133f4565b935061346483613404565b805f5b8381101561349457815161347b8882613422565b975061348683613439565b925050600181019050613467565b5085935050505092915050565b5f60a0820190506134b45f8301886126c5565b6134c16020830187612d4d565b81810360408301526134d38186613445565b90506134e26060830185612923565b6134ef60808301846126c5565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61352d601b8361255a565b9150613538826134f9565b602082019050919050565b5f6020820190508181035f83015261355a81613521565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220476bba5dd8d2fdeff06f610f42835b54e318348c88348bb0f1d7f1b6aaf93a1564736f6c63430008140033

Deployed Bytecode Sourcemap

49184:8524:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52715:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;51049:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;51882:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;50322:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;51326:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;52051:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;51235:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;56698:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;56868:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;51429:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;48265:148;;;;;;;;;;;;;:::i;:::-;;56259:159;;;;;;;;;;;;;:::i;:::-;;50132:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;48051:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;50193:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;51140:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;51556:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;50257:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;56959:707;;;;;;;;;;;;;:::i;:::-;;56526:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;51731:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;53029:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;52715:306;48188:12;:10;:12::i;:::-;48178:22;;:6;;;;;;;;;;:22;;;48170:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;52881:16:::1;52864:14;:33;;;;52922:17;52904:15;:35;;;;52961:14;52946:12;:29;;;;52998:15;52982:13;:31;;;;52715:306:::0;;;;:::o;51049:83::-;51086:13;51119:5;;;;;;;;;;;;;;;;;51112:12;;51049:83;:::o;51882:161::-;51957:4;51974:39;51983:12;:10;:12::i;:::-;51997:7;52006:6;51974:8;:39::i;:::-;52031:4;52024:11;;51882:161;;;;:::o;50322:52::-;;;;:::o;51326:95::-;51379:7;49943:1;49998:2;:13;;;;:::i;:::-;49986:9;:25;;;;:::i;:::-;51399:14;;51326:95;:::o;52051:313::-;52149:4;52166:36;52176:6;52184:9;52195:6;52166:9;:36::i;:::-;52213:121;52222:6;52230:12;:10;:12::i;:::-;52244:89;52282:6;52244:89;;;;;;;;;;;;;;;;;:11;:19;52256:6;52244:19;;;;;;;;;;;;;;;:33;52264:12;:10;:12::i;:::-;52244:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;52213:8;:121::i;:::-;52352:4;52345:11;;52051:313;;;;;:::o;51235:83::-;51276:5;49943:1;51294:16;;51235:83;:::o;56698:162::-;48188:12;:10;:12::i;:::-;48178:22;;:6;;;;;;;;;;:22;;;48170:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;56771:6:::1;56766:87;56787:6;:13;56783:1;:17;56766:87;;;56838:5;56820:4;:15;56825:6;56832:1;56825:9;;;;;;;;:::i;:::-;;;;;;;;56820:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;56802:3;;;;;:::i;:::-;;;;56766:87;;;;56698:162:::0;:::o;56868:83::-;56915:4;56936;:7;56941:1;56936:7;;;;;;;;;;;;;;;;;;;;;;;;;56929:14;;56868:83;;;:::o;51429:119::-;51495:7;51522:9;:18;51532:7;51522:18;;;;;;;;;;;;;;;;51515:25;;51429:119;;;:::o;48265:148::-;48188:12;:10;:12::i;:::-;48178:22;;:6;;;;;;;;;;:22;;;48170:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;48372:1:::1;48335:40;;48356:6;::::0;::::1;;;;;;;;48335:40;;;;;;;;;;;;48403:1;48386:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;48265:148::o:0;56259:159::-;48188:12;:10;:12::i;:::-;48178:22;;:6;;;;;;;;;;:22;;;48170:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;49943:1:::1;49998:2;:13;;;;:::i;:::-;49986:9;:25;;;;:::i;:::-;56312:12;:22;;;;49943:1;49998:2;:13;;;;:::i;:::-;49986:9;:25;;;;:::i;:::-;56345:14;:22;;;;56383:27;49943:1;49998:2;:13;;;;:::i;:::-;49986:9;:25;;;;:::i;:::-;56383:27;;;;;;:::i;:::-;;;;;;;;56259:159::o:0;50132:54::-;;;;:::o;48051:79::-;48089:7;48116:6;;;;;;;;;;;48109:13;;48051:79;:::o;50193:57::-;;;;:::o;51140:87::-;51179:13;51212:7;;;;;;;;;;;;;;;;;51205:14;;51140:87;:::o;51556:167::-;51634:4;51651:42;51661:12;:10;:12::i;:::-;51675:9;51686:6;51651:9;:42::i;:::-;51711:4;51704:11;;51556:167;;;;:::o;50257:58::-;;;;:::o;56959:707::-;48188:12;:10;:12::i;:::-;48178:22;;:6;;;;;;;;;;:22;;;48170:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;57023:11:::1;::::0;::::1;;;;;;;;57022:12;57014:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;57109:42;57072:15;;:80;;;;;;;;;;;;;;;;;;57163:58;57180:4;57195:15;;;;;;;;;;;49943:1;49998:2;:13;;;;:::i;:::-;49986:9;:25;;;;:::i;:::-;57163:8;:58::i;:::-;57266:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;57248:55;;;57312:4;57319:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;57248:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;57232:13;;:110;;;;;;;;;;;;;;;;;;57353:15;;;;;;;;;;;:31;;;57392:21;57423:4;57429:24;57447:4;57429:9;:24::i;:::-;57454:1;57456::::0;57458:7:::1;:5;:7::i;:::-;57466:15;57353:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;57500:13;;;;;;;;;;;57493:29;;;57531:15;;;;;;;;;;;57549:14;57493:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;57589:4;57575:11;;:18;;;;;;;;;;;;;;;;;;57618:4;57604:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;57646:12;57633:10;:25;;;;56959:707::o:0;56526:164::-;48188:12;:10;:12::i;:::-;48178:22;;:6;;;;;;;;;;:22;;;48170:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;56600:6:::1;56595:88;56616:5;:12;56612:1;:16;56595:88;;;56667:4;56650;:14;56655:5;56661:1;56655:8;;;;;;;;:::i;:::-;;;;;;;;56650:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;56630:3;;;;;:::i;:::-;;;;56595:88;;;;56526:164:::0;:::o;51731:143::-;51812:7;51839:11;:18;51851:5;51839:18;;;;;;;;;;;;;;;:27;51858:7;51839:27;;;;;;;;;;;;;;;;51832:34;;51731:143;;;;:::o;53029:184::-;48188:12;:10;:12::i;:::-;48178:22;;:6;;;;;;;;;;:22;;;48170:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;53131:1:::1;53107:26;;:12;:26;;::::0;53099:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;53192:12;53171:10;;:34;;;;;;;;;;;;;;;;;;53029:184:::0;:::o;45805:98::-;45858:7;45885:10;45878:17;;45805:98;:::o;52372:335::-;52482:1;52465:19;;:5;:19;;;52457:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;52563:1;52544:21;;:7;:21;;;52536:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;52645:6;52615:11;:18;52627:5;52615:18;;;;;;;;;;;;;;;:27;52634:7;52615:27;;;;;;;;;;;;;;;:36;;;;52683:7;52667:32;;52676:5;52667:32;;;52692:6;52667:32;;;;;;:::i;:::-;;;;;;;;52372:335;;;:::o;53221:2228::-;53325:1;53309:18;;:4;:18;;;53301:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;53402:1;53388:16;;:2;:16;;;53380:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;53472:1;53463:6;:10;53455:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;53530:17;53572:7;:5;:7::i;:::-;53564:15;;:4;:15;;;;:32;;;;;53589:7;:5;:7::i;:::-;53583:13;;:2;:13;;;;53564:32;53560:1533;;;53622:4;:10;53627:4;53622:10;;;;;;;;;;;;;;;;;;;;;;;;;53621:11;:24;;;;;53637:4;:8;53642:2;53637:8;;;;;;;;;;;;;;;;;;;;;;;;;53636:9;53621:24;53613:33;;;;;;53673:76;53745:3;53673:67;53695:15;;53685:9;;:25;53684:55;;53725:14;;53684:55;;;53712:12;;53684:55;53673:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;53661:88;;53778:13;;;;;;;;;;;53770:21;;:4;:21;;;:55;;;;;53809:15;;;;;;;;;;;53795:30;;:2;:30;;;;53770:55;:83;;;;;53831:18;:22;53850:2;53831:22;;;;;;;;;;;;;;;;;;;;;;;;;53829:24;53770:83;53766:436;;;53893:12;;53883:6;:22;;53875:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;53988:14;;53978:6;53962:13;53972:2;53962:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;53954:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;54076:12;54071:1;54058:10;;:14;;;;:::i;:::-;:30;54054:103;;;54122:14;54133:2;54122:10;:14::i;:::-;54121:15;54113:24;;;;;;54054:103;54175:9;;:11;;;;;;;;;:::i;:::-;;;;;;53766:436;54228:13;;;;;;;;;;;54222:19;;:2;:19;;;;:47;;;;;54247:18;:22;54266:2;54247:22;;;;;;;;;;;;;;;;;;;;;;;;;54245:24;54222:47;54218:167;;;54324:14;;54314:6;54298:13;54308:2;54298:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;54290:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;54218:167;54410:13;;;;;;;;;;;54404:19;;:2;:19;;;:43;;;;;54442:4;54427:20;;:4;:20;;;;54404:43;54401:174;;;54480:79;54555:3;54480:70;54502:16;;54492:9;;:26;54491:58;;54534:15;;54491:58;;;54520:13;;54491:58;54480:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;54468:91;;54401:174;54591:28;54622:24;54640:4;54622:9;:24::i;:::-;54591:55;;54666:6;;;;;;;;;;;54665:7;:32;;;;;54684:13;;;;;;;;;;;54676:21;;:2;:21;;;54665:32;:47;;;;;54701:11;;;;;;;;;;;54665:47;:89;;;;;54737:17;;54716:20;:38;54665:89;:121;;;;;54768:18;;54758:9;;:28;54665:121;54661:421;;;54807:67;54824:49;54828:6;54835:37;54839:20;54860:11;;54835:3;:37::i;:::-;54824:3;:49::i;:::-;54807:16;:67::i;:::-;54893:26;54922:21;54893:50;;54986:1;54965:18;:22;54962:105;;;55012:35;55025:21;55012:12;:35::i;:::-;54962:105;54788:294;54661:421;53598:1495;53560:1533;55118:1;55108:9;:11;55105:161;;;55158:39;55187:9;55158;:24;55176:4;55158:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;55133:9;:24;55151:4;55133:24;;;;;;;;;;;;;;;:64;;;;55238:4;55215:39;;55224:4;55215:39;;;55244:9;55215:39;;;;;;:::i;:::-;;;;;;;;55105:161;55292:27;55312:6;55292:9;:15;55302:4;55292:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;55276:9;:15;55286:4;55276:15;;;;;;;;;;;;;;;:43;;;;55344:40;55362:21;55373:9;55362:6;:10;;:21;;;;:::i;:::-;55344:9;:13;55354:2;55344:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;55330:9;:13;55340:2;55330:13;;;;;;;;;;;;;;;:54;;;;55415:2;55400:41;;55409:4;55400:41;;;55419:21;55430:9;55419:6;:10;;:21;;;;:::i;:::-;55400:41;;;;;;:::i;:::-;;;;;;;;53290:2159;53221:2228;;;:::o;46943:190::-;47029:7;47062:1;47057;:6;;47065:12;47049:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;47089:9;47105:1;47101;:5;;;;:::i;:::-;47089:17;;47124:1;47117:8;;;46943:190;;;;;:::o;47141:246::-;47199:7;47228:1;47223;:6;47219:47;;47253:1;47246:8;;;;47219:47;47276:9;47292:1;47288;:5;;;;:::i;:::-;47276:17;;47321:1;47316;47312;:5;;;;:::i;:::-;:10;47304:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;47378:1;47371:8;;;47141:246;;;;;:::o;47395:132::-;47453:7;47480:39;47484:1;47487;47480:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;47473:46;;47395:132;;;;:::o;55565:195::-;55624:4;55641:12;55708:7;55696:20;55688:28;;55751:1;55744:4;:8;55737:15;;;55565:195;;;:::o;55459:98::-;55516:7;55543:1;55541;:3;55540:9;;55548:1;55540:9;;;55546:1;55540:9;55533:16;;55459:98;;;;:::o;55768:483::-;50665:4;50656:6;;:13;;;;;;;;;;;;;;;;;;55846:21:::1;55884:1;55870:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;55846:40;;55915:4;55897;55902:1;55897:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;55941:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;55931:4;55936:1;55931:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;55974:62;55991:4;56006:15;;;;;;;;;;;56024:11;55974:8;:62::i;:::-;56047:15;;;;;;;;;;;:66;;;56128:11;56154:1;56170:4;56197;56217:15;56047:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;55835:416;50701:5:::0;50692:6;;:14;;;;;;;;;;;;;;;;;;55768:483;:::o;56426:92::-;56483:10;;;;;;;;;;;:19;;:27;56503:6;56483:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;56426:92;:::o;46612:179::-;46670:7;46690:9;46706:1;46702;:5;;;;:::i;:::-;46690:17;;46731:1;46726;:6;;46718:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;46782:1;46775:8;;;46612:179;;;;:::o;46799:136::-;46857:7;46884:43;46888:1;46891;46884:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;46877:50;;46799:136;;;;:::o;47535:189::-;47621:7;47653:1;47649;:5;47656:12;47641:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;47680:9;47696:1;47692;:5;;;;:::i;:::-;47680:17;;47715:1;47708:8;;;47535:189;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:765::-;776:6;784;792;800;849:3;837:9;828:7;824:23;820:33;817:120;;;856:79;;:::i;:::-;817:120;976:1;1001:53;1046:7;1037:6;1026:9;1022:22;1001:53;:::i;:::-;991:63;;947:117;1103:2;1129:53;1174:7;1165:6;1154:9;1150:22;1129:53;:::i;:::-;1119:63;;1074:118;1231:2;1257:53;1302:7;1293:6;1282:9;1278:22;1257:53;:::i;:::-;1247:63;;1202:118;1359:2;1385:53;1430:7;1421:6;1410:9;1406:22;1385:53;:::i;:::-;1375:63;;1330:118;690:765;;;;;;;:::o;1461:99::-;1513:6;1547:5;1541:12;1531:22;;1461:99;;;:::o;1566:169::-;1650:11;1684:6;1679:3;1672:19;1724:4;1719:3;1715:14;1700:29;;1566:169;;;;:::o;1741:246::-;1822:1;1832:113;1846:6;1843:1;1840:13;1832:113;;;1931:1;1926:3;1922:11;1916:18;1912:1;1907:3;1903:11;1896:39;1868:2;1865:1;1861:10;1856:15;;1832:113;;;1979:1;1970:6;1965:3;1961:16;1954:27;1803:184;1741:246;;;:::o;1993:102::-;2034:6;2085:2;2081:7;2076:2;2069:5;2065:14;2061:28;2051:38;;1993:102;;;:::o;2101:377::-;2189:3;2217:39;2250:5;2217:39;:::i;:::-;2272:71;2336:6;2331:3;2272:71;:::i;:::-;2265:78;;2352:65;2410:6;2405:3;2398:4;2391:5;2387:16;2352:65;:::i;:::-;2442:29;2464:6;2442:29;:::i;:::-;2437:3;2433:39;2426:46;;2193:285;2101:377;;;;:::o;2484:313::-;2597:4;2635:2;2624:9;2620:18;2612:26;;2684:9;2678:4;2674:20;2670:1;2659:9;2655:17;2648:47;2712:78;2785:4;2776:6;2712:78;:::i;:::-;2704:86;;2484:313;;;;:::o;2803:126::-;2840:7;2880:42;2873:5;2869:54;2858:65;;2803:126;;;:::o;2935:96::-;2972:7;3001:24;3019:5;3001:24;:::i;:::-;2990:35;;2935:96;;;:::o;3037:122::-;3110:24;3128:5;3110:24;:::i;:::-;3103:5;3100:35;3090:63;;3149:1;3146;3139:12;3090:63;3037:122;:::o;3165:139::-;3211:5;3249:6;3236:20;3227:29;;3265:33;3292:5;3265:33;:::i;:::-;3165:139;;;;:::o;3310:474::-;3378:6;3386;3435:2;3423:9;3414:7;3410:23;3406:32;3403:119;;;3441:79;;:::i;:::-;3403:119;3561:1;3586:53;3631:7;3622:6;3611:9;3607:22;3586:53;:::i;:::-;3576:63;;3532:117;3688:2;3714:53;3759:7;3750:6;3739:9;3735:22;3714:53;:::i;:::-;3704:63;;3659:118;3310:474;;;;;:::o;3790:90::-;3824:7;3867:5;3860:13;3853:21;3842:32;;3790:90;;;:::o;3886:109::-;3967:21;3982:5;3967:21;:::i;:::-;3962:3;3955:34;3886:109;;:::o;4001:210::-;4088:4;4126:2;4115:9;4111:18;4103:26;;4139:65;4201:1;4190:9;4186:17;4177:6;4139:65;:::i;:::-;4001:210;;;;:::o;4217:118::-;4304:24;4322:5;4304:24;:::i;:::-;4299:3;4292:37;4217:118;;:::o;4341:222::-;4434:4;4472:2;4461:9;4457:18;4449:26;;4485:71;4553:1;4542:9;4538:17;4529:6;4485:71;:::i;:::-;4341:222;;;;:::o;4569:619::-;4646:6;4654;4662;4711:2;4699:9;4690:7;4686:23;4682:32;4679:119;;;4717:79;;:::i;:::-;4679:119;4837:1;4862:53;4907:7;4898:6;4887:9;4883:22;4862:53;:::i;:::-;4852:63;;4808:117;4964:2;4990:53;5035:7;5026:6;5015:9;5011:22;4990:53;:::i;:::-;4980:63;;4935:118;5092:2;5118:53;5163:7;5154:6;5143:9;5139:22;5118:53;:::i;:::-;5108:63;;5063:118;4569:619;;;;;:::o;5194:86::-;5229:7;5269:4;5262:5;5258:16;5247:27;;5194:86;;;:::o;5286:112::-;5369:22;5385:5;5369:22;:::i;:::-;5364:3;5357:35;5286:112;;:::o;5404:214::-;5493:4;5531:2;5520:9;5516:18;5508:26;;5544:67;5608:1;5597:9;5593:17;5584:6;5544:67;:::i;:::-;5404:214;;;;:::o;5624:117::-;5733:1;5730;5723:12;5747:180;5795:77;5792:1;5785:88;5892:4;5889:1;5882:15;5916:4;5913:1;5906:15;5933:281;6016:27;6038:4;6016:27;:::i;:::-;6008:6;6004:40;6146:6;6134:10;6131:22;6110:18;6098:10;6095:34;6092:62;6089:88;;;6157:18;;:::i;:::-;6089:88;6197:10;6193:2;6186:22;5976:238;5933:281;;:::o;6220:129::-;6254:6;6281:20;;:::i;:::-;6271:30;;6310:33;6338:4;6330:6;6310:33;:::i;:::-;6220:129;;;:::o;6355:311::-;6432:4;6522:18;6514:6;6511:30;6508:56;;;6544:18;;:::i;:::-;6508:56;6594:4;6586:6;6582:17;6574:25;;6654:4;6648;6644:15;6636:23;;6355:311;;;:::o;6672:117::-;6781:1;6778;6771:12;6812:710;6908:5;6933:81;6949:64;7006:6;6949:64;:::i;:::-;6933:81;:::i;:::-;6924:90;;7034:5;7063:6;7056:5;7049:21;7097:4;7090:5;7086:16;7079:23;;7150:4;7142:6;7138:17;7130:6;7126:30;7179:3;7171:6;7168:15;7165:122;;;7198:79;;:::i;:::-;7165:122;7313:6;7296:220;7330:6;7325:3;7322:15;7296:220;;;7405:3;7434:37;7467:3;7455:10;7434:37;:::i;:::-;7429:3;7422:50;7501:4;7496:3;7492:14;7485:21;;7372:144;7356:4;7351:3;7347:14;7340:21;;7296:220;;;7300:21;6914:608;;6812:710;;;;;:::o;7545:370::-;7616:5;7665:3;7658:4;7650:6;7646:17;7642:27;7632:122;;7673:79;;:::i;:::-;7632:122;7790:6;7777:20;7815:94;7905:3;7897:6;7890:4;7882:6;7878:17;7815:94;:::i;:::-;7806:103;;7622:293;7545:370;;;;:::o;7921:539::-;8005:6;8054:2;8042:9;8033:7;8029:23;8025:32;8022:119;;;8060:79;;:::i;:::-;8022:119;8208:1;8197:9;8193:17;8180:31;8238:18;8230:6;8227:30;8224:117;;;8260:79;;:::i;:::-;8224:117;8365:78;8435:7;8426:6;8415:9;8411:22;8365:78;:::i;:::-;8355:88;;8151:302;7921:539;;;;:::o;8466:329::-;8525:6;8574:2;8562:9;8553:7;8549:23;8545:32;8542:119;;;8580:79;;:::i;:::-;8542:119;8700:1;8725:53;8770:7;8761:6;8750:9;8746:22;8725:53;:::i;:::-;8715:63;;8671:117;8466:329;;;;:::o;8801:118::-;8888:24;8906:5;8888:24;:::i;:::-;8883:3;8876:37;8801:118;;:::o;8925:222::-;9018:4;9056:2;9045:9;9041:18;9033:26;;9069:71;9137:1;9126:9;9122:17;9113:6;9069:71;:::i;:::-;8925:222;;;;:::o;9153:474::-;9221:6;9229;9278:2;9266:9;9257:7;9253:23;9249:32;9246:119;;;9284:79;;:::i;:::-;9246:119;9404:1;9429:53;9474:7;9465:6;9454:9;9450:22;9429:53;:::i;:::-;9419:63;;9375:117;9531:2;9557:53;9602:7;9593:6;9582:9;9578:22;9557:53;:::i;:::-;9547:63;;9502:118;9153:474;;;;;:::o;9633:182::-;9773:34;9769:1;9761:6;9757:14;9750:58;9633:182;:::o;9821:366::-;9963:3;9984:67;10048:2;10043:3;9984:67;:::i;:::-;9977:74;;10060:93;10149:3;10060:93;:::i;:::-;10178:2;10173:3;10169:12;10162:19;;9821:366;;;:::o;10193:419::-;10359:4;10397:2;10386:9;10382:18;10374:26;;10446:9;10440:4;10436:20;10432:1;10421:9;10417:17;10410:47;10474:131;10600:4;10474:131;:::i;:::-;10466:139;;10193:419;;;:::o;10618:180::-;10666:77;10663:1;10656:88;10763:4;10760:1;10753:15;10787:4;10784:1;10777:15;10804:102;10846:8;10893:5;10890:1;10886:13;10865:34;;10804:102;;;:::o;10912:848::-;10973:5;10980:4;11004:6;10995:15;;11028:5;11019:14;;11042:712;11063:1;11053:8;11050:15;11042:712;;;11158:4;11153:3;11149:14;11143:4;11140:24;11137:50;;;11167:18;;:::i;:::-;11137:50;11217:1;11207:8;11203:16;11200:451;;;11632:4;11625:5;11621:16;11612:25;;11200:451;11682:4;11676;11672:15;11664:23;;11712:32;11735:8;11712:32;:::i;:::-;11700:44;;11042:712;;;10912:848;;;;;;;:::o;11766:1073::-;11820:5;12011:8;12001:40;;12032:1;12023:10;;12034:5;;12001:40;12060:4;12050:36;;12077:1;12068:10;;12079:5;;12050:36;12146:4;12194:1;12189:27;;;;12230:1;12225:191;;;;12139:277;;12189:27;12207:1;12198:10;;12209:5;;;12225:191;12270:3;12260:8;12257:17;12254:43;;;12277:18;;:::i;:::-;12254:43;12326:8;12323:1;12319:16;12310:25;;12361:3;12354:5;12351:14;12348:40;;;12368:18;;:::i;:::-;12348:40;12401:5;;;12139:277;;12525:2;12515:8;12512:16;12506:3;12500:4;12497:13;12493:36;12475:2;12465:8;12462:16;12457:2;12451:4;12448:12;12444:35;12428:111;12425:246;;;12581:8;12575:4;12571:19;12562:28;;12616:3;12609:5;12606:14;12603:40;;;12623:18;;:::i;:::-;12603:40;12656:5;;12425:246;12696:42;12734:3;12724:8;12718:4;12715:1;12696:42;:::i;:::-;12681:57;;;;12770:4;12765:3;12761:14;12754:5;12751:25;12748:51;;;12779:18;;:::i;:::-;12748:51;12828:4;12821:5;12817:16;12808:25;;11766:1073;;;;;;:::o;12845:281::-;12903:5;12927:23;12945:4;12927:23;:::i;:::-;12919:31;;12971:25;12987:8;12971:25;:::i;:::-;12959:37;;13015:104;13052:66;13042:8;13036:4;13015:104;:::i;:::-;13006:113;;12845:281;;;;:::o;13132:410::-;13172:7;13195:20;13213:1;13195:20;:::i;:::-;13190:25;;13229:20;13247:1;13229:20;:::i;:::-;13224:25;;13284:1;13281;13277:9;13306:30;13324:11;13306:30;:::i;:::-;13295:41;;13485:1;13476:7;13472:15;13469:1;13466:22;13446:1;13439:9;13419:83;13396:139;;13515:18;;:::i;:::-;13396:139;13180:362;13132:410;;;;:::o;13548:180::-;13596:77;13593:1;13586:88;13693:4;13690:1;13683:15;13717:4;13714:1;13707:15;13734:233;13773:3;13796:24;13814:5;13796:24;:::i;:::-;13787:33;;13842:66;13835:5;13832:77;13829:103;;13912:18;;:::i;:::-;13829:103;13959:1;13952:5;13948:13;13941:20;;13734:233;;;:::o;13973:173::-;14113:25;14109:1;14101:6;14097:14;14090:49;13973:173;:::o;14152:366::-;14294:3;14315:67;14379:2;14374:3;14315:67;:::i;:::-;14308:74;;14391:93;14480:3;14391:93;:::i;:::-;14509:2;14504:3;14500:12;14493:19;;14152:366;;;:::o;14524:419::-;14690:4;14728:2;14717:9;14713:18;14705:26;;14777:9;14771:4;14767:20;14763:1;14752:9;14748:17;14741:47;14805:131;14931:4;14805:131;:::i;:::-;14797:139;;14524:419;;;:::o;14949:143::-;15006:5;15037:6;15031:13;15022:22;;15053:33;15080:5;15053:33;:::i;:::-;14949:143;;;;:::o;15098:351::-;15168:6;15217:2;15205:9;15196:7;15192:23;15188:32;15185:119;;;15223:79;;:::i;:::-;15185:119;15343:1;15368:64;15424:7;15415:6;15404:9;15400:22;15368:64;:::i;:::-;15358:74;;15314:128;15098:351;;;;:::o;15455:332::-;15576:4;15614:2;15603:9;15599:18;15591:26;;15627:71;15695:1;15684:9;15680:17;15671:6;15627:71;:::i;:::-;15708:72;15776:2;15765:9;15761:18;15752:6;15708:72;:::i;:::-;15455:332;;;;;:::o;15793:85::-;15838:7;15867:5;15856:16;;15793:85;;;:::o;15884:60::-;15912:3;15933:5;15926:12;;15884:60;;;:::o;15950:158::-;16008:9;16041:61;16059:42;16068:32;16094:5;16068:32;:::i;:::-;16059:42;:::i;:::-;16041:61;:::i;:::-;16028:74;;15950:158;;;:::o;16114:147::-;16209:45;16248:5;16209:45;:::i;:::-;16204:3;16197:58;16114:147;;:::o;16267:807::-;16516:4;16554:3;16543:9;16539:19;16531:27;;16568:71;16636:1;16625:9;16621:17;16612:6;16568:71;:::i;:::-;16649:72;16717:2;16706:9;16702:18;16693:6;16649:72;:::i;:::-;16731:80;16807:2;16796:9;16792:18;16783:6;16731:80;:::i;:::-;16821;16897:2;16886:9;16882:18;16873:6;16821:80;:::i;:::-;16911:73;16979:3;16968:9;16964:19;16955:6;16911:73;:::i;:::-;16994;17062:3;17051:9;17047:19;17038:6;16994:73;:::i;:::-;16267:807;;;;;;;;;:::o;17080:143::-;17137:5;17168:6;17162:13;17153:22;;17184:33;17211:5;17184:33;:::i;:::-;17080:143;;;;:::o;17229:663::-;17317:6;17325;17333;17382:2;17370:9;17361:7;17357:23;17353:32;17350:119;;;17388:79;;:::i;:::-;17350:119;17508:1;17533:64;17589:7;17580:6;17569:9;17565:22;17533:64;:::i;:::-;17523:74;;17479:128;17646:2;17672:64;17728:7;17719:6;17708:9;17704:22;17672:64;:::i;:::-;17662:74;;17617:129;17785:2;17811:64;17867:7;17858:6;17847:9;17843:22;17811:64;:::i;:::-;17801:74;;17756:129;17229:663;;;;;:::o;17898:332::-;18019:4;18057:2;18046:9;18042:18;18034:26;;18070:71;18138:1;18127:9;18123:17;18114:6;18070:71;:::i;:::-;18151:72;18219:2;18208:9;18204:18;18195:6;18151:72;:::i;:::-;17898:332;;;;;:::o;18236:116::-;18306:21;18321:5;18306:21;:::i;:::-;18299:5;18296:32;18286:60;;18342:1;18339;18332:12;18286:60;18236:116;:::o;18358:137::-;18412:5;18443:6;18437:13;18428:22;;18459:30;18483:5;18459:30;:::i;:::-;18358:137;;;;:::o;18501:345::-;18568:6;18617:2;18605:9;18596:7;18592:23;18588:32;18585:119;;;18623:79;;:::i;:::-;18585:119;18743:1;18768:61;18821:7;18812:6;18801:9;18797:22;18768:61;:::i;:::-;18758:71;;18714:125;18501:345;;;;:::o;18852:176::-;18992:28;18988:1;18980:6;18976:14;18969:52;18852:176;:::o;19034:366::-;19176:3;19197:67;19261:2;19256:3;19197:67;:::i;:::-;19190:74;;19273:93;19362:3;19273:93;:::i;:::-;19391:2;19386:3;19382:12;19375:19;;19034:366;;;:::o;19406:419::-;19572:4;19610:2;19599:9;19595:18;19587:26;;19659:9;19653:4;19649:20;19645:1;19634:9;19630:17;19623:47;19687:131;19813:4;19687:131;:::i;:::-;19679:139;;19406:419;;;:::o;19831:223::-;19971:34;19967:1;19959:6;19955:14;19948:58;20040:6;20035:2;20027:6;20023:15;20016:31;19831:223;:::o;20060:366::-;20202:3;20223:67;20287:2;20282:3;20223:67;:::i;:::-;20216:74;;20299:93;20388:3;20299:93;:::i;:::-;20417:2;20412:3;20408:12;20401:19;;20060:366;;;:::o;20432:419::-;20598:4;20636:2;20625:9;20621:18;20613:26;;20685:9;20679:4;20675:20;20671:1;20660:9;20656:17;20649:47;20713:131;20839:4;20713:131;:::i;:::-;20705:139;;20432:419;;;:::o;20857:221::-;20997:34;20993:1;20985:6;20981:14;20974:58;21066:4;21061:2;21053:6;21049:15;21042:29;20857:221;:::o;21084:366::-;21226:3;21247:67;21311:2;21306:3;21247:67;:::i;:::-;21240:74;;21323:93;21412:3;21323:93;:::i;:::-;21441:2;21436:3;21432:12;21425:19;;21084:366;;;:::o;21456:419::-;21622:4;21660:2;21649:9;21645:18;21637:26;;21709:9;21703:4;21699:20;21695:1;21684:9;21680:17;21673:47;21737:131;21863:4;21737:131;:::i;:::-;21729:139;;21456:419;;;:::o;21881:224::-;22021:34;22017:1;22009:6;22005:14;21998:58;22090:7;22085:2;22077:6;22073:15;22066:32;21881:224;:::o;22111:366::-;22253:3;22274:67;22338:2;22333:3;22274:67;:::i;:::-;22267:74;;22350:93;22439:3;22350:93;:::i;:::-;22468:2;22463:3;22459:12;22452:19;;22111:366;;;:::o;22483:419::-;22649:4;22687:2;22676:9;22672:18;22664:26;;22736:9;22730:4;22726:20;22722:1;22711:9;22707:17;22700:47;22764:131;22890:4;22764:131;:::i;:::-;22756:139;;22483:419;;;:::o;22908:222::-;23048:34;23044:1;23036:6;23032:14;23025:58;23117:5;23112:2;23104:6;23100:15;23093:30;22908:222;:::o;23136:366::-;23278:3;23299:67;23363:2;23358:3;23299:67;:::i;:::-;23292:74;;23375:93;23464:3;23375:93;:::i;:::-;23493:2;23488:3;23484:12;23477:19;;23136:366;;;:::o;23508:419::-;23674:4;23712:2;23701:9;23697:18;23689:26;;23761:9;23755:4;23751:20;23747:1;23736:9;23732:17;23725:47;23789:131;23915:4;23789:131;:::i;:::-;23781:139;;23508:419;;;:::o;23933:228::-;24073:34;24069:1;24061:6;24057:14;24050:58;24142:11;24137:2;24129:6;24125:15;24118:36;23933:228;:::o;24167:366::-;24309:3;24330:67;24394:2;24389:3;24330:67;:::i;:::-;24323:74;;24406:93;24495:3;24406:93;:::i;:::-;24524:2;24519:3;24515:12;24508:19;;24167:366;;;:::o;24539:419::-;24705:4;24743:2;24732:9;24728:18;24720:26;;24792:9;24786:4;24782:20;24778:1;24767:9;24763:17;24756:47;24820:131;24946:4;24820:131;:::i;:::-;24812:139;;24539:419;;;:::o;24964:175::-;25104:27;25100:1;25092:6;25088:14;25081:51;24964:175;:::o;25145:366::-;25287:3;25308:67;25372:2;25367:3;25308:67;:::i;:::-;25301:74;;25384:93;25473:3;25384:93;:::i;:::-;25502:2;25497:3;25493:12;25486:19;;25145:366;;;:::o;25517:419::-;25683:4;25721:2;25710:9;25706:18;25698:26;;25770:9;25764:4;25760:20;25756:1;25745:9;25741:17;25734:47;25798:131;25924:4;25798:131;:::i;:::-;25790:139;;25517:419;;;:::o;25942:191::-;25982:3;26001:20;26019:1;26001:20;:::i;:::-;25996:25;;26035:20;26053:1;26035:20;:::i;:::-;26030:25;;26078:1;26075;26071:9;26064:16;;26099:3;26096:1;26093:10;26090:36;;;26106:18;;:::i;:::-;26090:36;25942:191;;;;:::o;26139:176::-;26279:28;26275:1;26267:6;26263:14;26256:52;26139:176;:::o;26321:366::-;26463:3;26484:67;26548:2;26543:3;26484:67;:::i;:::-;26477:74;;26560:93;26649:3;26560:93;:::i;:::-;26678:2;26673:3;26669:12;26662:19;;26321:366;;;:::o;26693:419::-;26859:4;26897:2;26886:9;26882:18;26874:26;;26946:9;26940:4;26936:20;26932:1;26921:9;26917:17;26910:47;26974:131;27100:4;26974:131;:::i;:::-;26966:139;;26693:419;;;:::o;27118:194::-;27158:4;27178:20;27196:1;27178:20;:::i;:::-;27173:25;;27212:20;27230:1;27212:20;:::i;:::-;27207:25;;27256:1;27253;27249:9;27241:17;;27280:1;27274:4;27271:11;27268:37;;;27285:18;;:::i;:::-;27268:37;27118:194;;;;:::o;27318:180::-;27366:77;27363:1;27356:88;27463:4;27460:1;27453:15;27487:4;27484:1;27477:15;27504:185;27544:1;27561:20;27579:1;27561:20;:::i;:::-;27556:25;;27595:20;27613:1;27595:20;:::i;:::-;27590:25;;27634:1;27624:35;;27639:18;;:::i;:::-;27624:35;27681:1;27678;27674:9;27669:14;;27504:185;;;;:::o;27695:220::-;27835:34;27831:1;27823:6;27819:14;27812:58;27904:3;27899:2;27891:6;27887:15;27880:28;27695:220;:::o;27921:366::-;28063:3;28084:67;28148:2;28143:3;28084:67;:::i;:::-;28077:74;;28160:93;28249:3;28160:93;:::i;:::-;28278:2;28273:3;28269:12;28262:19;;27921:366;;;:::o;28293:419::-;28459:4;28497:2;28486:9;28482:18;28474:26;;28546:9;28540:4;28536:20;28532:1;28521:9;28517:17;28510:47;28574:131;28700:4;28574:131;:::i;:::-;28566:139;;28293:419;;;:::o;28718:114::-;28785:6;28819:5;28813:12;28803:22;;28718:114;;;:::o;28838:184::-;28937:11;28971:6;28966:3;28959:19;29011:4;29006:3;29002:14;28987:29;;28838:184;;;;:::o;29028:132::-;29095:4;29118:3;29110:11;;29148:4;29143:3;29139:14;29131:22;;29028:132;;;:::o;29166:108::-;29243:24;29261:5;29243:24;:::i;:::-;29238:3;29231:37;29166:108;;:::o;29280:179::-;29349:10;29370:46;29412:3;29404:6;29370:46;:::i;:::-;29448:4;29443:3;29439:14;29425:28;;29280:179;;;;:::o;29465:113::-;29535:4;29567;29562:3;29558:14;29550:22;;29465:113;;;:::o;29614:732::-;29733:3;29762:54;29810:5;29762:54;:::i;:::-;29832:86;29911:6;29906:3;29832:86;:::i;:::-;29825:93;;29942:56;29992:5;29942:56;:::i;:::-;30021:7;30052:1;30037:284;30062:6;30059:1;30056:13;30037:284;;;30138:6;30132:13;30165:63;30224:3;30209:13;30165:63;:::i;:::-;30158:70;;30251:60;30304:6;30251:60;:::i;:::-;30241:70;;30097:224;30084:1;30081;30077:9;30072:14;;30037:284;;;30041:14;30337:3;30330:10;;29738:608;;;29614:732;;;;:::o;30352:831::-;30615:4;30653:3;30642:9;30638:19;30630:27;;30667:71;30735:1;30724:9;30720:17;30711:6;30667:71;:::i;:::-;30748:80;30824:2;30813:9;30809:18;30800:6;30748:80;:::i;:::-;30875:9;30869:4;30865:20;30860:2;30849:9;30845:18;30838:48;30903:108;31006:4;30997:6;30903:108;:::i;:::-;30895:116;;31021:72;31089:2;31078:9;31074:18;31065:6;31021:72;:::i;:::-;31103:73;31171:3;31160:9;31156:19;31147:6;31103:73;:::i;:::-;30352:831;;;;;;;;:::o;31189:177::-;31329:29;31325:1;31317:6;31313:14;31306:53;31189:177;:::o;31372:366::-;31514:3;31535:67;31599:2;31594:3;31535:67;:::i;:::-;31528:74;;31611:93;31700:3;31611:93;:::i;:::-;31729:2;31724:3;31720:12;31713:19;;31372:366;;;:::o;31744:419::-;31910:4;31948:2;31937:9;31933:18;31925:26;;31997:9;31991:4;31987:20;31983:1;31972:9;31968:17;31961:47;32025:131;32151:4;32025:131;:::i;:::-;32017:139;;31744:419;;;:::o

Swarm Source

ipfs://476bba5dd8d2fdeff06f610f42835b54e318348c88348bb0f1d7f1b6aaf93a15
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.