Date: Fri, 26 Jan 2001 05:57:49 -0500 From: AAganichev AT netscape DOT net (Alexander Aganichev) To: djgpp-workers AT delorie DOT com Subject: locale support: 2nd approach Mime-Version: 1.0 Message-ID: <19592E02.6D643FFB.09ACFA57@netscape.net> X-Mailer: Franklin Webmailer 1.0 Content-Type: multipart/mixed; charset="us-ascii"; boundary=-------19594bb26d645dab19594bb26d645dab Reply-To: djgpp-workers AT delorie DOT com ---------19594bb26d645dab19594bb26d645dab Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi all! I've made a second approach to the locale under DJGPP v2. This version provides support for is*() family of functions from ctype as well, so now we have: 1) tolower/toupper 2) is*() 3) dot or comma in *printf() 4) %x and %X in strftime() 5) strcoll() This version still miss something, f.e. it made two mismatches on CP866 with Microsoft's implementation from WinNT. I'm sure there's more differences on other pages. "We call this beta because this better than nothing :-)" Any suggestions, improvements, comments are welcome. Even though I couldn't promise fast replies. -- Alexander Aganichev Hypercom Europe Limited, Inc. Software Engineer __________________________________________________________________ Get your own FREE, personal Netscape Webmail account today at http://webmail.netscape.com/ ---------19594bb26d645dab19594bb26d645dab Content-Type: application/x-zip-compressed; name="djlocale.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="djlocale.zip" Content-Description: djlocale.zip UEsDBBQAAgAIAElPOirXtWSMjwsAANEtAAARAAAAbG9jYWxlL3NldGxvY2FsLmPtGmtT4zjy e36FJluADSYk4TEzZJi9XIab4QqYFI+63WIpl7GVRDeOnbKdQG7hv1+3/JJkO4m35sN9OKZg klar1epu9Us62CUDf7YM2HgSEW2gk87Hj0fkyz/JF+r6AaMGCSklg+/D3y+uv7YAPvID4tDI Ym5Idg8aB7tk6AcR872Q2AVC+/DnhDwtyfkTDSZW4JArK4poOvPKd9iIUQdxP+532+0O4vZd +mJ5Dg3IbYv0x5bH7AldkE+WlX7+m0ej0LZmtAUfPiOxxi/Ms925Q8kn17ctl7YmnwWYHS1n CiiMHJc9qbCAeWMZ5symTMFahgcjK5hFgQwf+4ddGeKyKYtChDXCyIqYTWwQAnFtz7R917Ui +tA9Pnkk5Iw0B81eEQnZTlAqkaY+CMEKljFeBZI3n9KA2auXi9g0Xy1FkrDseRBQz16a4XL6 5LsPnXhFhRZwZDrUZlPLNWc+86IVeNHEn4eg7dAM6awCr5RWS0GqIpQigW7ndkRME+yjyxzy Z4MQIEeY04NPNthvFBPaBYReMuhSr9d4I/GUBySJ08ByLcchS38OEvHnXhQsyYQGlPT2dTRG Qv7sGIQ0qWfe3zYNcvxmIOw9woK5eXOfww4PDdIcBeY/bnLY0UeAOdT8cs5hjTdBCZxN5My2 oodjYAgnXA7MwffLy/7duUHw893vw/jT1ffr87v+ze/8y/X91fnNxYB/vru4Okey9CWigUfm XsjGHpxDLgDTdP6d2qcZWU8ufXjspag5hoPD4A2mwEnZOFqTMJ5uAZkPaRSf0q6W7IWO/WBp qGoADL2RKiqk4yn1InRILrUjP0AlwUpwPs2AjkOCfxCWaNoFYgsgY8PfMxJTQ5Cmp9plBglw rM0tABd9mo/4AQB2AWVEtJQ1cnaGcutfXurcBEg8852wE1ELCe+9FHOviBoraT1irsP1uJmK 16OiBah4NJqDBt8FC/z+lorgHcjTns60GNdAr6CT11dSgA+/31781tRTAYXPLLInmQRTMEja CinJpXWagAkPLRrjCiGMfCKgCfiwt6dnGKTMOBmeS9bLkJCv2ZJogptVdirsttNTuULFlPDU 6X5QuMo2hD+R7/rPNNCYLjODI/PZrHQk3gv6eHPkWuPwge11HlN7jH/eyneFc2rsKbWhfFts hIQW8h7SJRQvD6pt6iLfOHP/M5wgEzETLDxjHK7MBrgC6ZUsWQgFFYsW8IB8AVa1gBRHViwg 4SULSDBxGgSDfOY4AGVDChHHnjgWFBA9OgZPuKAmOt2VmDM/ZCsxc02MAss2HTaGfCPThAwb fOvfmFf934p7npl2aM4CalOH5rM9BbpqPgjdfAL9ziybCgQUcBmFfK98kyDf0BMpCLBsuiwD 8WCkuVDJ2SieDjhdhLohLaK01QOUONYNz88mhqwa8VoDVo23VUZVtdz1VrvKYkXJJgnkzxYs hqFTxcdpanoBu92aHmw5B1tLcdMitpBsIPa3062r063bIna8GcRe6z7fGvEvqFpLcg8QUpJw WC7OBg4dPzSndAoBToNUbjvNTSAKvjsj+53UQFAdg4sv6NxfRvBjkMFgmH3j6QZfKc16MrvK stBEbkKChGaDu5oEWQzeae3oPaQzw4Tl+h7TlVmW/ZA9xAdqRFP2jrAzwNxPMFO4GpFD9h/q j7Q4H9YPkq9Kaq0rQRvYwVzBg2SBZJwmKTV7bMEngzPw+UyEAuBXDj6Vobp85mKh5hhxOp/+ PAXU+lGMpihoLiGUVzYaa8SKfKbN9jp6agVJbjSGOq5lTbjOTo57EtTl0HZHgL60nl7QZw2G EtDhwIsvEtBG4JE8m7vcxOxkCizPEBJjBBvR2i9dqDm2ESnhHMWuJZN4ekG2Cdjj9ra4LK4r GBumewUTTIVsYtFL6Y9nLbVygxwKxyeWXxnWsYCVmOIZ5trF0wlAIymcJAf3UwwxdtuCqeD+ YW+yRSnMSIYquT3CywXJODF7A5tSsGQjFJM6FvkW0UBwoDoklh5P+Kw/GqTTzhZM51Rm1Svy 6irzlccSIz4pjKmmLA3JBi0NcbM+Lhko2rZMMtEzkVPlakvP3Uy5vWuSwR/rqr6z8hedLa8p Kq2d7JLOCfjRstGOYh28aAXDlIjxgOGERryOMmPqLyjEPUvBgvW6BjGnSwBpukE0kWG9WBEZ fFmFNq9XO5IZqkGaCOVwvWKqjLxi9hX1VS3b7P6v2Ob/LXMTy9zW0toXimddLzVLTERptBOC L2WuQ3gRzU0lpj8K/CnhNBDYarXkDJUHBjUulFTn6aZtzLTTehyYR756Kh7kezZmbykCV5RN PsOX97quYOeVv83r+3iOTPOtyPFZ3E74VN5MSATz9yWUBQz76t6CBiHzPfJMseMIguKni4T+ lAIKpO8u+0HhiNAO7JMMhkeH71VGd0HE2DsEXWIKCeIMIf6QJxpFNCDPfvAjjJd7tpaqlGOp pJLLex08y2WxhFJo3u9IRqtFxlsi1f2RZN2KZYV1ShZYS7OUWWGJ1UwXaIK6+nY0h7pgSVg4 DqzZBA8EC2dzz440nUBtB994KQzfnpnrpvXGc+B746K2AhrOXajcMfVBPeM5AU2FqapHo1jV H05OuGbRNCxvJypScmgEjgCUS6dA1WVwsko0XNWN4vCL2+HNxfUdeU2/fr3pD7+tECxbq6Py 9V6zBfuXw2/9fMH+JRTh8FXD4y5RhjohwbkfDs9voGBIvl5+/9f5TeF8F4LeJswM768Hd6tO 9c8IrxVdvcpQWmzrVTQmBP+dB4WPpY5bLzT/jhUJ/sTuXylfnaNyxkpahN1S1mr3CMvZOKlm Q+nFVLNRq5NYo5dYp5tYp59Yr6OY5g5PRJBb96hUGpv1GMspQnKzLZ+tup3HFXS7FSr4y/3I Gh3Jv+w2KhxCoU1Zxx9UnbuNztzG7cxaZ22jc7Zxz3PDrufmfc+frT65GZrV+mUZ/ftCqcCJ tE8lmENHFuQQp0q4q9dmrWhiJCt2ahAHytNaxLs1iC85cWcD4m/qFZx4k93NUh4RevwoOhHR cj+olV4ZFvhEXvI1qvayvn1dkresIHAREyBbM5lG4WI+364Irdxut61XZS8VPfW1nYFYG9Kx EQ9MUl6PAir12rM+u3R1nd5cC8LKLx7eGo24b55dhNd4fMBKngjg/vP3J8EifzkQH1xS6NKl B71/eXkqtFzx2VHcHJeaLGlKqGO+2xbkB9VW9ZQ04NSblbi5epNQ5fEMXb2UCRaG+MwpMwjU i+C4wCEPwBgiSiwQ/3Rq7UO4sAIAOFDmgDb8UWJScR0E5RWWMQ3JUXAZMxry3kCho1zghI9Y UdprNtRLIhzKJnH515qSyb/WrFT+tSZx+WfnKP6vUThiFW3hNYoqIyB27tTpsaCqJ6u1ijI/ l1o1CSW7UShkEqwmIMZXZbYkSmGqEkETb4IXa8IbmeRSCwveNh515TKPXzT90d4RXsDEPga7 UWOozb0F0ZqX/euvubLRLbi8C8Uv8Yq3J64t3U8hfv5Y6V3+WOn1lfsXexLkd287xo6e3Q/q 8tbyV0K5+8rcOlTa4JtPs/0r5zlxrx0D/mRpdSLo9C5FjA5hR74GUi95jgutsbCb33niOriT nnjRCAgFmRFkh8Q66Mm3kvJmH9ijAUzFQkNS2R0q9rcYUj7SpU6GYg9CPEvikBCY3vCR6ggM ityd397JL1GZzx+Jrn2HF0eY8jd4nTZ/8pilcCKeGNyTp5FZkgERCyPc1GIeD4gWJLuxJq3F w6MaAuUYCYQ0y0Y5ddA4mk0wDpjVeczCZWzleciN7ZKbAtdcxTAXO47PAlh7BMeDj5+SrfAP r4lnFm+HbViu6flR0uGiSfan9ITlZ2QpwS0b/70CLQ0Z1ZkhdPgMsb8ksgGL11ii3X2ZgA8v f7Sm0N0awW+Y7q/TbrePjk9a3UODFLNdVac6Wtcv1HPYqPFfUEsDBBQAAgAIAAhPOiqA0z+0 /QIAAPAHAAAQAAAAc3RyaW5nL3N0cmNvbGwuY23VXWscNxTG8fv5FILeeB3XXmkkzQjHocGB 0kJfoFchBKOXI++EZTbsjtuE4O/e3f+qCYHePOhoztFv7s7Npbrfffy8nx43i7q4XykdglVv flVvZLvbT3KlDiLq/o8/3/7y+8/Xx/u626siS5y2B3V5091cqt92ZaqTlNNoUOmzer2VT3Eu sld/XavXj3Ge8kb+Vi9j/O/80yzLIcePcn08vDq90/0wzXn7VES9PCz7aX683rzquqf5MD3O x6fzJu7Vw0P58JB3221c5GGJaSvvjPPv1Z360im1/rReX51Sk4bsSUs60pPD1XlipApkJBOZ yUIKWc8TGkNjaAyNoTE0hsbQzdAYGkNjaAyNoTE0hm6GwTAYBsNgGAyDYTBMMwyGwTAYBsNg GAyDYZrRY/QYPUaP0WP0GD1G34weo8foMXqMHqPH6DH6ZlgMi2ExLIbFsBgWwzbDYlgMi2Ex LIbFsBi2GQ7DYTgMh+EwHIbDcM1wGA7DYTgMh+EwHIZrhsfwGB7DY3gMj+ExfDM8hsfwGB7D Y3gMj+GbMWAMGAPGgDFgDBgDxtCMAWPAGDAGjAFjwBgwhmaMGCPGiDFijBgjxogxNmPEGDFG jBFjxBgxRoyxGQEjYASMgBEwAkbACM0IGAEjYASMgBEwAkZoRsSIGBEjYkSMiBExYjMiRsSI GBEjYkSMiBGbkTASRsJIGAkjYSSM1IyEkTASRsJIGAkjYaRmZIyMkTEyRsbIGBkjNyNjZIyM kTEyRsbIGLkZBaNgFIyCUTAKRsEozSgYBaNgFIyCUTAKRmmGYAiGYAiGYAiGYEgzBEMwBEMw BEMwBEOaUTEqRsWoGBWjYlSM2oyKUTEqRsWoGBWjYtTaPd8eN1CROs2iThvmIq/+b91cfLeQ Vvl9103z0h031nloNx+W8666PBx/9bvarLrTmvpnM21FXdB/bFqpuzvVCrNaHRtOTUpNVZ0+ n76uV9wotZflaT+r9S31Qb940U7mfHruvvZ8e/7Hb6/fds/dv1BLAwQUAAIACAAETzoqAxse gtkFAAAPFQAADwAAAHRpbWUvc3RyZnRpbWUuY6VYbXfSShD+XH7FiAcbIIHQetW+gNLWt55T 9Vjv0V71cpZkgSgkOcmmFbX//c7sbpoEg5dYPpB9mXnmmdnX2W4LjoNwGXnTmQDjuAm9vb1H cHIKJ3weRB43IeYcjl+/uXj56nkH2ydBBC4XzJvH0OrWuiX696vpnwWuN/G4S6p7MF7CcM6/ Md/lEZx3YDhlvufM+CUcMpaWn/hcxA4LeQcLA8K56/nOPHE5HMYi8vxpZzbItQlvwYstjliG sql21+UTz+fw7mx08XT4dnQ0PH+KVGy7VosFE54DTuDHApwZi6DFJgvx8TP04UcNoH6e+HUT 6meB/LxLOH3ec1fWZgl9nkUefc6ZqJu164MyzOEqpsuWGlaXEDnWRUT3bypoI0rLaEiWJAYT SaRq5SbHBZOnTPJ/xsfSLIvoMwwjVZPop8rT02Qu+5KpdIqHyt5rR1D9VXBJnxPurDV8tGo4 YdFSG4/SMjJwZpqDNy+y4JqG9hSZJLHQZARfjLlkjYQCXURSN83ITJeJnmQ0GrlfRi4TfIQz c8HEx55N9OqNRbfhdhvLel6O5tGN3AMl92K/cbbfOEe51N/Y+85HAqb0zYIg3Q9FJub5ojZi rmvk44Oz16QeSEKHxbxZozjRmjEODqDdDoUJliWRm9hBnQDeBIw7N230iziOvw/2QdZvoG3k Swba7eaKYC8TTO2qfqUkgiQMeWQYiR97Ux+XKpFtYmeTFK9r10Wn0KFLg5zwlS+uN/VEbCoX Q+Yqr/KBGScTCjyh6UChWWyEtoxmMDGw0gQLdjB+AG6gXW+FloWSPjSgZ6Pwtr2tXPGh28cm VbEsxUCShauZN+dg+DAAG+7dgxALhC6RKQSSIelpSS1AsgoHbaJuFiPJAbUIX0dUDiyOl4ly B7n4qLlRG+EyKIy7mlSmXis4SIkjQCygJdZNh1SHpoUqFWeE7oZ+H7Yb24rsD02ZEJEvssaA 4RYdMof3t0HHTumn0/yzRBghwpZSkdKkCqiqpNrt9ZrWr5r2Jnp2iUV7I4v/kqYKGCr18ipa J77yhDMzWvnI5eMjVbc/2dv7tS3L0nGubY0jzr4eFGSGJEIUhDUQi9EVbrpwiPPq50/ItQzg AVLKr0upc0fOErn9Z8KfzXSwV1VwbgjPT3iRAbs9A3Y7BkdFBovALxKghgH0eusJHGUEULiq /THaz9dnt+YzvhWf49T+HbUTah5LzqJ2/pbR7PZsXAo7ptwTN8N2MmzaQuoNBo0xNDik5xA0 LvCkExUp8xXK2necDJIfLvUNgU5W+aXHaHVO7u85bR6zF6VAsyCJKgK9XAtE588OPK5tIQys Nu/jX0VLX0otLWklt2lH260C9vX3/m8+uPNb+r+5pbPysff8inFclOPgBiDDWAnLz7Boj6h/ ohtxpRkdFhFycRr0Zfyg/uasjvGqD8+qYr9dXXi0H/zBqotWcV6m+0r4B2jnpfGPuVMx9u/K vKNbd3VKYnUYRdVQJ6VO0cnZ79s4iA9xBLM2kyba5p7+vebwUEv/IV6BM+gmdOGhqRZdpXC+ /z8jCrNwp3hcqFnQa6KbD8ggiRKRahyu1kaxYsQ+FOfGaqJWfYZ8KwHMZYjVAZcrF5Tp+gsC hr9wRZCJTdVLwsWKveflp8mv5ky4X8XO91/2s9EIgacLEUwmh7QU6pbcztp1yoPK71spo5xq RRr/3NBQjn0PfE63vfwuS20VR61BsN0Wyrbgw26vd9p99Miy92ww7nd6O53dzl/Nfco+yAEe xR4eKjKX82KpkvjqYck1Ycxn7NILqCtr7gC8iSgRCxLM9GZcKhEAcwRHURHz+QRYDCFJTYzd Jqa9PO6QXFcTRSiWzMX+SmpyXcv+s8cByyp/HsA0vt2mp4E0z1GqWki/YlAGq1JXzE0ntLwM /WBhpu8dC/aNSiZslteqXFa+L8jEnIga0hq2aKwmXtx7inWeM4nKpZlbkHYzS3/VqwXlbwd5 XQ2Ke5d2quCoTU7+B1BLAwQUAAIACACza8MmEqdRB64DAAAkCAAACgAAAENPUFlJTkcuREqV VcFu2zgQvesrBjl1F7LgxNtN21vsIN50vY5RJ4ceKXFkTVYSBZKyo7/fGUpynK2DooYBSyY5 8+bNm8fHghzw1xcIOZUIF5lpOqp3iX6+SADuPWiDDtYPj6CapuzAG1B1B860NuMFY6OUamWJ n+WopV3hUUPawdNiDnO0/2KJXRwy3FlE2JrcH5TlN9PWWnkydSxhJKrhXRbUDuusgxQdaQ57 +xVusTScgjPrfo+DQ2GgUHv+b8dRNeOKVFmagyQie8THcFMETc5bSltBxkk5B+9yCB5t5ZIo AoDFCB7u69zYKgADfjqGkuT4glnrVVpK6EJ5kEIqxUXqt0E+LH47AS5rbz/X8DdVsFL1mbVv JmN0jA3WfwFMZ5/+vJ5cff74RxQ9Sru0ydoKay99ey9hAFup7n/FR3u0KVdWxcDvkBWq3nGz gUKw2nA9wiFq5mQbyuamanzt7GkKgXKO155VMLm8RMv1EyyxRqtK2LRpSRmsKOMGYwwH8kUv PSNpBQm+ZNgI9e5LFP0O24H71oUWM2oqNWTWTxMTw258KCnNEhV+dbqTJ66fieV3rNpEhTb9 HCwI2BWlVtluBM1RTmE7hm1VkCn3vz6eWm5WiQC+YRXjC2eSYl5pYxmp1hfGuoIaoBOFUR3m aUd7rAepccowi1XrPFisFMk2rzIvE5lDZ1qojKa8AzUcCQe4aukhwxSqRJ4cCfMcM9/HYjEo rXsmBfj7kGT1JHICUtu3tmbpIIwDz/kcNNbsSfcTz+Lgs7dfl5tNfE59EDpuWHnjTD2sV9+B evItZtTQIOyBjzbPKev/ewXIcbgAk3ohRgWWpYH6edc0EqlyWO7RMVlhXhpLPKHE3iUORsEU OMTOzK4m+6uERzoGVsns03Wi5VlGx/k2RU1eVpPT2k36zHT2ZlAGpfyUiEOBddBizS4hjRQH 7bFkg/39yNVZpjjKr3J1jikO8ytcDeM2lsyDxoxM5BNFC3GQfpc76xfz7W0Md9s7sfjBuuOB odEbc/ac9waSN7BBsXUcIzLSbZsVQZbiCy2f7qJwE1Rt6akpT9P34+AGSVcM/Oaol/HOc3Cx eNh8v18vL0KN41uyup9fBOegOitbPTSFz5GLRhN+nUhNOjgotwZJ7qXTRG5IFffDq7poaIqp ecWaKqhEBveNwx9YV/1G1IFBZu5gSczlSzRcHO9dqsPyx8/wiJWwsikVJ5gwfeQRZrPpsGNu nBcR/nMD06vLy8vJ5Wx6Paw9bW+i/wBQSwMEFAAAAAgA+1o6KgiAbkE8AQAA4wEAAAoAYABy ZWFkbWUuMXN0U0RLAFwAAAAACAChT4/jY2RgaRBhYGBQYYAAByBmZAIzWRWAhAKQzcgK4YsC idncB+UkAj1TfszfUgJSx8Qgw8AIlhZh+M8oz8AI4YBJAFVUDQAHGTRxOhk0cTraM3E6XZAx TwMxDIX3SPkP3oChNzAjoKKoooJSqZWAMU18vcBdEhzn1C78dpyiqhKZHDv53nt+6wxfZODO Z2gj3Wn18+9otanDZNh2kCiO3mEGH2wcUo+M0EdreoRcUorElQKzxXy1gvG6gU2HQPhdPKHT ygeZDoZ9DCBMNl8YoKU4iAEEG0tgOjT5kMGRH5HAMFAJE/aDCEQoGSlr1ZkRgaN8CK3fFULw XK0lpP4AwhaaJxAO45AbrbRaRsZanTJxrN1nbzFkbM6ptVpLNPxbSI6FrIQ1orA1GV1lu89d SmCCAxz20PutrXIHcD4z+W1heVaCQxIRCcVIQ4bYwsPr6uNpOW9mi+Pn0/Xx5R0uM2KlTYQG dYmyn6uj7WnhLtLZn3R63JuKh3UD050J3nY4wo0xp/o+IGdrEjZS3Gr1C1BLAwQUAAIACACq qpMljEFBM4wOAAAWPQAACwAAAENPUFlJTkcuRU1YrVtbc9s2Fn7XjP4D3mpPZDV22m2zme6M 7/FWvoxlTzZtOilEQhJrkuACpG119sfvOQcACVLXSHRmIpECPpz7jdIvv7T61+0EMptF6aQv kldm/vDd2/77kC4GV6fnN8NztvLv8P3BmQgODt+//7nb+aVtCtkmf6fAhoom05ztBftA0Pu3 RA4bzdj5SKgpVyG75nkudLeD/y5vHtmlSIXiMbsrRnEUsEEUiFQLtnd5N9jvdg7W/CEKiirS bKyEYFqO8xeuxAc2kwULeMqUCCOdq2hU5IJFOeNp+L1ULJFhNJ7BjW6nSEOhWD4VLBcq0UyO 6WIFcVyzDO/oqQiBuW4H11/g+UN7PruQAMvzSKYfmIjgc8WehdJwzY56DAjY4znSqJjMcBXw ytMZi3lerex73FVMhCxKicCpzIDkKeAAWy9RHLORYIUW4yLudTuwlH26evh4+/jAjm8+s0/H 9/fHNw+fP8DSfCrhU/EsDFCUZHEEuEC44mk+Awl0O9fn96cfYcPxydXg6uEzknxx9XBzPhyy i9t7dszuju8frk4fB8f37O7x/u52eN5nbCiQJLFStWMSP8goFDmPYk1sfgZ1aSArDtmUPwtQ WyCiZyCKM3SO9UoB+cUynRB36D0fmDa0sHEUC3Z6e/f56uYSSLwas1TmPfaiIrCIXK7WXo/9 +J49CJCQYHcxDwQ7YMMCd7579xbEfCJ1jquuj9nbo8PDw4PDd29/6rHH4TGxhfL4AtR8CWXw xdJAAvB573bOXwNBZqB9k8dPjjVIQGciiIBj4Zb1wNATwTKucrJXNBI0djAA31CsprsdDYYG pAcyBG2P0QeYTOMZvkfm6f4UrBoEAxhgFuQeaBO4lON9kHK3A4YYpUFchAgONm0E7KNbKuQI 2EtFCPJ+mMIuywGYs2OB8QytToMGjJZkHMsXCIKkL/1PZJ4Z2Y2iFF/74lU074W1m2Ec00J4 bd6LpLnb7XyaAn+llPDAklmwNKSIbE1qYzm6ZwzvbuAo7nZKDyrVRnLCkEPGCywpkUh4x8Er lRiDpNLA8RppXwxjJZM5KSIa3gOrKRKR5mSKIEv0kqTQOSoEssaUpxOjAvEKDCEvVQg2OjMG j5TZiMfdQchcj/Fuxyw0tEEwEeOxCHJzDGiSh6hsqyRva3+VdUbmSFBSiLYZo5YwglgtIhxP UQoiKHI+iq2T7hUaeYBVuHO/R8ICIQhjmQGH6EZ0KKGLGPmdxwDoEUoRYigF5zVhwxqor5Hy vKl8gRipwOSfeRxBPEDFQCiiaK4E16j4l+nMRLwmIQlp4Zto6XY+miPrEuQ1C51Zh18gVMwh bK1QfTO13uwbX7czNqDNA3oodtB1DnE5npH+H9D0IPbE0Uhxhb6D0RNl54ehKsGCF4HAB1H6 hCShCZBPBWTfJnTnc5AL9O/xSPrGCmpzhaMXIZ0cI44xbuNKKD8r4zoZMysg7fTyJERmQ6fz t0RozREjAn8N8srxIL0qjAVznPUYZBUOLGlhoocCK0qBkkCg05ehETfxAkIOVA2zKk9WR1Md 4e+EiB8lUcxVCeHiQ42AfSDydgxAhdIYCyBY1TzOqGfmQCqVvEyjYEoyXKpnNByriW5nYKW4 rNgbwIYeJexmsuwPrk72LRZk2+EZUGE3LVwOK8DEdYHkaSroAp71eY9NMnjBwAq2guzqPicT PsV4C3RTsUHBmCKwEqSa0qAe04iqMqqO2CnEA/CSNOJYAgj1BKtnPazTyn0LqspFxJbxp5EO K1n/OdLhdz14sczge8MBvEN7/TMcfee8ETQCRPBYy0WBmSoP5x46h81YkZ++eePMHLiBdzoP gzdvluhjeHrnkrpHMm6pBGyvAKqs7Rr+VqC9oQEbFrxMBr4yUTzBQsMcrjkWX+BW6zyPlY73 QFKH/OWBdTuERreRGFtEZ8YSQ5lAvULU3oGYI02VOvA4wYrY0JzwJ5OZvYYCbGIEwSuplQ5A bMLTArRARWYO9cZ8B4S0PUeUW2vM2GyMJpFBvBUK7RLLJXBOc8hcSjfFij2yV5ZrtrZdk9LN NluHDoskATMoi1C8d9hn96JWL1E8AjmgFTkJm3LN0lXrudxqZ3duh0lEZKo2GyFCbWujLLI1 ITXHoXg+7P8dZT17cYQXjB38iz7VKgirj/GKPi93q9wsb/xVu1W1fJIW1WHmwjtsEgSw3H1K F0f+xTu62KR/noQjD4kujspD4WJzIMjzbkPJQpSO5QKeiYXm6iwDHhcJiFZnmSNmOfMbkVnJ x54rR38FC0/eWNBoIEd9duZbq1dhWCs1cdJUKp7ngbfBrsDU865BsRtZAPWea6mMi5sZTS5l rGv2fQqQSQaVl6LbMRQ73r56Au4jTFnz5SVdNVIwaNdo8SHxRKkQxuTGCrjbedeQhDteFSmE LGwfgyeqWDzXrTuu8ZN5T625qRWF85oqPEEqDHIlUyA8hirCg+Y16Zpywnj/f4tIYUpZTGqP XeFkQCYJVkxZkRsNs0xC7Md0Ky0x1sHhrpxvpOC2zgUPMVo3A5vZ2DdmAqHzhUOKgmylNPxf EB8TkZsUzSmZuLGOqcrL/d3ODysMkUzDtqoUo0x/Wt6mrhaJuADl6wSDfxU3lVhMNcTyGcZ3 KOpl+izSCBgmThYk4LqeG2T0fDrIzhCFqkxfbVBg0cgFXtdhkN1QRcnqAwZbjtuS1rUjZQqz WbqmPsQwBWgu4lhb7ZTjiBnNIJyS0BdjYdOQtaK+Ee2NzO38zM0KjZObyugAx0mC3Q6/P6pr zvZTNgYc/CaTMfyvZ9pO8qgIuDw93bdEhpKal1SIUuNEwI8N82hMIWpe6Xr3tIw51VSCJn+m Tp+bS1AgNiNCvbjxGxew28uxdobnjaoQwk2rFoUJrzstrcD2NcFUSk1i4qnpmlOeiLIKPRsM aBLwLKOQFAUSHkUx1thg7NDcJXjihSEBfRb7G2qNcfqF2oFKBuIjKK0A3R8jWEkCWp9bJmJL hb/8pLa8rBSNditMsAszFcNYhCDQWRUxkCJkoa3Ml+0+gW2maaVpG5Dic4J2gvMEFIMdm3Fq rtmenRhXVMjq4oTs3457qURM8x7DcS/RCXLeN3qyIrY9OQieFPSVu0BjQ+XXkZEAmYmVe9Vz QzaxQxLBDs6tidtYh/MEkggFehO0ScF2WIu2anVcaGFLzHJA5U06/VGCi/gupeI9KApELDOM AC7hKuGKwcUPHf6xoOR28/RxJpKC7UnYFaUU0p9S+ULx7CU5uLh7PIDP96kEX3LEER7xAx7x qc+uRf43UDYVaW0mclrODlYALaV1yfpDXP8O1/8q4784O481h+5HqFWE0vphjl1Ayj5yETyt Xk/0/Moj9vgi2D0m29gs/73f79OAIKNJOLW7tkNBn6YEgQYAy/7wRQG+kUEs1GWbWWoWOyBZ CsrX+e31BbT+1I+az5Zr/Oeflkux2zl7PB/QcJvyjteQXUN05iJmlzLGegTOpvH2krbwodG+ 2OKuHOWYgIreD7G/xy6Ph/Df2UnPrZtARw1d/jIugJ7ljyCu0qCkwbT+pcj23DBj3wgVq8DK 8vZGOvQ/6nYAko8wNpdLwhGtcLJHADtp8GDKQco+W8XC0ikJc0MSEwQucLBuA4BhDEWPMqXi xaZsHOk9R+KF3jTmfg35Y8TL6flE2VaXFlkWQ4GJw1V0xKZIJa4mNCm99jBDprniYWSCG4DT 0b0le+tD1Jw/UZMvAhHi0aRArOZwLELE96HfcY8Y3LOqQCocssqULMnMU2ChGdZ3O3MDWBTk oubqf+VszV1XuoJQB+I0d4eG5N+u7pY/a32z5nrBXTtswYc0XFEBWBGGNYtP6MXwYgH5ron1 kXRbSAH0kR7UxkjUaP5+ePTujzoYKLLE2xksi4uS0R3Bsqw9Nl0l74O98bdB1bAAzDaGdSAs HJazuAooBLIaVEFdvkL43wgWejzuxCJ0LO1RJV6z9sBM9bPMJGr1zGoWObQarWkxSlpkESvs fpCE3wgGZeY8VtyWRcSSb2n0DSBoONsTFYCVEboNsDhsC0yJZ6fDbwFTeR0Geq3gaSuaGmLP dYtiL7KwJbAJ11nTRLfLihD320sXEygrtwGjuXeTRajpKtnDKqxR/V2PpyebsUhT8C2E1cSJ w7ZKkTjSuefQu9kCPqHyWNyavTRpiz2ojMKiCu07IGVJzaR2E5SO/hbtOA2OwbJVZG2MlIvX 6Ch8jmzQ25RB+2ynAZSG4nVXK8hlEUzbkjgEvHylxDcF877jtVstWvtiWAtA0NYFDoqWHGCj tyV7CJZYtIVg5osqqRnCSqXXgem2wF4Uz1ayuTEYPWdMorCkbIGd9pqCa9gpnP2FZhz+is3S A2xr4JRDjt1wgq88jqBZ5Z6Wt7IFA6bxqUdQErWtxAnMzop2lRSOjFgLEofXIw9pN0kZX+bb gSkPaFJjbkeqsKjiC8B6JtTgdW8uIK8A+5otYHE7sCyrUzao+d/SNEHP/30cHO6ukfvGFpq0 KftEhqEYe+a+Cxj2NtGoLTB9tNAqtgVbaBVbgSkxwWlDxaa5UW37KFI1Y8MMZ5pqDZiWwZPI W5KZzsOsxmYzV29or/Uov115RDj4VF4G7YR5eg7Slg4pRa8Jq5t7ZP4laBXsK8+yVrIZgUHt oIyFtQOmJc3nWwCLkkwa0nYGw3q3HScCMGO2h8tl9i1g+JWtmidt4pFzAwMLpme672jZNVa0 aLQINhXBU2m0zYBxjw8SVcg+9a/77N8yFXo5m7pND3BgNvy3ANaWO+k23Um36U4Elq12p28B a883dZu+qdv0Td2Cb+K/AdQSaUhf43Udw2bf6MevbRjUuQf8jhTvxxrmcSofyWfR7Tg+Vz5d 73acT6/6SWqTtH3aRlI1X8TKp/PfuQcSXWGN2Ot+CbHw9w/44NdUYaWEQLC2VqOV91eXH7sd 13Zt+hh+6c9q2fnNGbu9KH81eX79H7b2l7j/B1BLAQIUABQAAgAIAElPOirXtWSMjwsAANEt AAARAAAAAAAAAAEAIAAAAAAAAABsb2NhbGUvc2V0bG9jYWwuY1BLAQIUABQAAgAIAAhPOiqA 0z+0/QIAAPAHAAAQAAAAAAAAAAEAIAAAAL4LAABzdHJpbmcvc3RyY29sbC5jUEsBAhQAFAAC AAgABE86KgMbHoLZBQAADxUAAA8AAAAAAAAAAQAgAAAA6Q4AAHRpbWUvc3RyZnRpbWUuY1BL AQIUABQAAgAIALNrwyYSp1EHrgMAACQIAAAKAAAAAAAAAAEAIAAAAO8UAABDT1BZSU5HLkRK UEsBAhcLFAAAAAgA+1o6KgiAbkE8AQAA4wEAAAoAEQAAAAAAAQAgALaBxRgAAHJlYWRtZS4x c3RTRAQAXAAAAFVUBQAHGTRxOlBLAQIUABQAAgAIAKqqkyWMQUEzjA4AABY9AAALAAAAAAAA AAEAIAAAAIkaAABDT1BZSU5HLkVNWFBLBQYAAAAABgAGAHQBAAA+KQAAAAA= ---------19594bb26d645dab19594bb26d645dab--