ETH Price: $4,477.99 (+2.70%)
Gas: 0.16 Gwei

Input Data Messages (IDM)

Decentralized communication on Ethereum.

Filter by:
More than 100,000 found
Age:90D
data:,{"targetChain":"10143","targetAddress":"0x31e4044Bd1F7f9292E87C70E76701cf9E2d3dEef","action":"gas_deposit"}
at txn 0xed1ec736e9ac2bce40dd1dd2e6aeeb907489d07bb26621744f3b6c3b4a6e7b86 Sep-11-2025 06:30:59 PM UTC (6 hrs ago)
0x981249b365d582Ec476aa7f5cDe6629729d651E7
at txn 0xcf252a99acd4c2c42b5ab93d9a9a10738b0e92df35784bb6c77f4c81ee889ccf Sep-11-2025 06:29:35 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x50495a3fdcd699fbb0e9a3e8d0e4f1c59d98253b1f1f0c0d9f47294949f1a164 Sep-11-2025 06:23:23 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0xf17eb5c7a92bddc13cce824cc2076470eeadcecca1c4d17a102545f8bf2227a3 Sep-11-2025 06:23:11 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x27b5ba8fd0bc9998f6d85ad214fdf30d72d155fe1663d0d23bb1d559f2c54d74 Sep-11-2025 06:22:59 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x07259805926248c3ccaf0654e12a0fdbe58571d771ecfaa20124d3a802209d33 Sep-11-2025 06:22:23 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x904d4ce02251ce13988731640484e3ae54de04dc395b13281f7aaf0f26852efb Sep-11-2025 06:22:11 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0xdf3fe440153f24c8db725ab19c0cb10d6f6a889d6d4906ff4ece08e8bad3121f Sep-11-2025 06:21:59 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0xe71288757f7b75e24d532fa737b81ee357e5b6268db7300a90a32ed174e15fb8 Sep-11-2025 06:21:47 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0xe51faf8e290c102328a7d16821fc6c64babba892f667966e68221ce6ba925faa Sep-11-2025 06:21:35 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x91aa35ea68ebaf4a7a595271a56228a22c3fb0de4012963fc65a5e8531d85212 Sep-11-2025 06:21:23 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x2f946698cbf87d5126c5e2894590292f58081281d23ef2bc4c310ed74e6bb1d2 Sep-11-2025 06:21:11 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x02ac8771bfb79619a33a8824e04cfa6a6266f2c217efa1735bb0dcfba26bdbe4 Sep-11-2025 06:20:59 PM UTC (6 hrs ago)
🚨 BUNDLE DETECTED! 🚨

🥷 Launch smarter with @bundlefren — the most secure and cost effective bundler on Ethereum!

🎥 Live Demo: https://www.youtube.com/watch?v=9_Q1sQ-VXAs

🔗 Website: https://bundlefren.com
📲 Telegram: https://t.me/bundlefren
📘 Docs: https://docs.bundlefren.com
🚀 Free Bundle Tracker: https://t.me/bundlefren_tracker
🐦 Twitter: https://x.com/bundlefren

Audited by DappRadar - https://dappradar.com/dapp/bundle-fren
at txn 0x6b68eea800895a44238be1ffb248f798e9be205d688e48150536fca5f0895982 Sep-11-2025 06:19:59 PM UTC (6 hrs ago)
0x2D7Bf2282a87f07C636825a3aA328B374Aa441D4
at txn 0xca32800e746b019c13c4ec2aa0c865e97c058617dc605761ef753e9534b414dc Sep-11-2025 06:18:47 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x1c8f9c51a7140ebc3bae87e53fa129d83161198f78144e1c55dfa494280763e7 Sep-11-2025 06:17:35 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x52ab80684b7d39d4de4ddf2e4da0a44fa77e84965ffa7c482a30ead3915574bf Sep-11-2025 06:17:23 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x404176dd016677bb39b01ef1ab19880e77ed411642fa69536c48d2ab7a55865e Sep-11-2025 06:16:35 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x214e0b662abbc3b3760fc846f79cbdf1666703b29e99ca04d73c03446338b728 Sep-11-2025 06:15:59 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0xfee8b5d5d4796f118bfa06988b2143abb66952509ea7b4fcbc6137ca88343505 Sep-11-2025 06:15:47 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x405537ac7ec3a8dfbf1a437c1e568122ed48e37b2e0e98f1a8880bd1706eecb9 Sep-11-2025 06:15:35 PM UTC (6 hrs ago)
Ave Maria, gratia plena,
Dominus tecum.
Benedicta tu in mulieribus,
et benedictus fructus ventris
tui, Iesus.
Sancta Maria, Mater Dei,
ora pro nobis peccatoribus
nunc et in hora mortis nostrae.
Amen

-----------------------------------





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXX
xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXx
XXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
xx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXX
x++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx
x+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxx
x+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX
+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxX
x+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
xxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXX
xxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
xxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
x+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX
++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx
+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx
++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx
++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx
+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX
+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX
++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX
+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx
+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx
++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx
+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx
+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx
+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx
+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX
++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX
++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx
++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx
++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX
++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX
+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX
++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX
+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX
++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX
+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX
+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx
+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX
+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX
++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX
++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX
+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx
++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx
+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx
++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx
+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX
++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$
+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$
++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$
++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$
+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X
++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX
++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$
+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X
++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$
++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$
++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$
++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$
+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$
++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$
++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$
+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$
++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$
+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$
+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$
+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$
+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$
++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$
+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$
+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$
xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$
++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$
xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$
XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$
XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$
XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$
XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$
XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$
XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$
XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$
XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$
XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$
XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$
XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXX
XXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXX
XXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX
$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXX
XXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX
XXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXX
XXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXX
XXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX
$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$
$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$
XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$
XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$
XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&
XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&
XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&
XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$
XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$
XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$
XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$
XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$
X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X
$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX
$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$
$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$
$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$
$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$
$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$
$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$
$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$
$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&
+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&
++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&
+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&
XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&
XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&
XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&
xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&
xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&
+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$



-----------------------------------

Magnificat anima mea Dominum,
et exsultavit spiritus meus in Deo salutari meo,
quia respexit humilitatem ancillae suae.
Ecce enim ex hoc beatam me dicent omnes generationes,
quia fecit mihi magna qui potens est,
et sanctum nomen eius,
et misericordia eius in progenies et progenies
timentibus eum.
Fecit potentiam in brachio suo,
dispersit superbos mente cordis sui;
deposuit potentes de sede
et exaltavit humiles;
esurientes implevit bonis
et divites dimisit inanes.
Suscepit Israel puerum suum,
recordatus misericordiae,
sicut locutus est ad patres nostros,
Abraham et semini eius in saecula.


-----------------------------------


O mi Jesu, dimitte nobis debita nostra,
salva nos ab igne inferni,
perduc in caelum omnes animas,
praesertim eas, quae misericordiae tuae
maxime indigent.


-----------------------------------

Pater noster, qui es in caelis,
sanctificetur nomen tuum.
Adveniat regnum tuum.
Fiat voluntas tua,
sicut in caelo, et in terra.
Panem nostrum cotidianum da nobis hodie,
et dimitte nobis debita nostra,
sicut et nos dimittimus debitoribus nostris.
Et ne nos inducas in tentationem,
sed libera nos a malo.
Amen.


-----------------------------------




$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$
$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$
$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$
$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$
$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&
$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$
$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&
$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&
$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&
$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&
$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&
$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&
$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&
$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&
$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&
$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&
$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&
$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&
$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&
$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&
$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&
$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&
$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&
$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&
$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$
$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$
$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$
$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$
$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&
$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&
$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$
$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$
$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&
$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&
$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&
$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&
$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$
$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$
$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&
$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&
$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$
$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$
$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$
$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$
$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$
$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$
$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$
$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$
$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$
$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&
$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&
$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&
X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&
$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&
X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&
$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&
$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&
$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&
$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$
$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&
xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$
XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$
XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$
XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$
XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$
XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$
XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$
xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$
xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$
xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$
+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X
++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$
++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$
++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$
++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X
+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X
++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X
;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$
;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX
;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx
;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx
+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx
+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx
;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x
;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x
;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;
+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;++++++++++++++++++++
+;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;
;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++
;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+
;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+
++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+
++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxx
x+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx



at txn 0x56031e422f961455176f51d2a1d79923d0415ab1939ae4791a09584344292071 Sep-11-2025 06:15:23 PM UTC (6 hrs ago)
Show messages: