Waraxe IT Security Portal  
  Login or Register
::  Home  ::  Search  ::  Your Account  ::  Forums  ::   Waraxe Advisories  ::  Tools  ::
March 29, 2024
Menu
 Home
 Logout
 Discussions
 Forums
 Members List
 IRC chat
 Tools
 Base64 coder
 MD5 hash
 CRC32 checksum
 ROT13 coder
 SHA-1 hash
 URL-decoder
 Sql Char Encoder
 Affiliates
 y3dips ITsec
 Md5 Cracker
 User Manuals
 AlbumNow
 Content
 Content
 Sections
 FAQ
 Top
 Info
 Feedback
 Recommend Us
 Search
 Journal
 Your Account



User Info
Welcome, Anonymous
Nickname
Password
(Register)

Membership:
Latest: MichaelSnaRe
New Today: 0
New Yesterday: 0
Overall: 9145

People Online:
Visitors: 735
Members: 0
Total: 735
PacketStorm News
·301 Moved Permanently

read more...
Log in Register Forum FAQ Memberlist Search
IT Security and Insecurity Portal

www.waraxe.us Forum Index -> PHP script decode requests -> Need help to decode itself
Post new topic  Reply to topic View previous topic :: View next topic 
Need help to decode itself
PostPosted: Sat Sep 03, 2011 10:05 am Reply with quote
funny
Beginner
Beginner
 
Joined: Jan 09, 2011
Posts: 3




Hello,
how can I decode the encrypted file itself. I know that it is encoded with Base 64.

Thanks


[code]<?php $OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64');$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$OOO000O00=$OOO000000{0}.$OOO000000{12}.$OOO000000{7}.$OOO000000{5}.$OOO000000{15};$O0O000O00=$OOO000000{0}.$OOO000000{1}.$OOO000000{5}.$OOO000000{14};$O0O000O0O=$O0O000O00.$OOO000000{11};$O0O000O00=$O0O000O00.$OOO000000{3};$O0O00OO00=$OOO000000{0}.$OOO000000{8}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OOO00000O=$OOO000000{3}.$OOO000000{14}.$OOO000000{8}.$OOO000000{14}.$OOO000000{8};$OOO0O0O00=__FILE__;$OO00O0000=135452;eval($OOO0000O0('JE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwT08wMCgkTzAwME8wTzAwLDB4NGRkKTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMHgxN2MpLCdFbnRlcnlvdXdraFJIWUtOV09VVEFhQmJDY0RkRmZHZ0lpSmpMbE1tUHBRcVNzVnZYeFp6MDEyMzQ1Njc4OSsvPScsJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nKSk7ZXZhbCgkT08wME8wME8wKTs='));return;?>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fMySfBAmbULINZOjd21sd25gd3n0DB9VF1SmdblzFBxpRMOlcMy1duOgF29jD2a0k11dk2xvC2ySb3cidualk10IKJEmkzShDBCPkoOlcMy1duOzb215F3ySb3YvC2slftE9NUEJwJl7tJOLcBcifBx0F19sGbYxdy9zd2YqcbWINUnpF3YlftILC29sdB9Vb29XfolvdmYdk215F3ySRMOlcMy1duOgF29jD2a0k11dk2xvC2ySb3cidualk10pwe8hkoYvdB1vdl9vFuOpd25zBZfsGbYxdt5LcBcifBx0b3YvC2slftffBZfSd2Yidy92CBx1cUffwePIkZF7tm0hDBCPkoOlcMy1duOzb215F3ySb3YvC2slftE9NUEJwJl7tJOLcBcifBx0F19sGbYxdy9zd2YqcbWINUnpF3YlftILC29sdB9Vb29XfolvdmYdk3nLd19sGbYxdt5LcBcifBx0b3YvC2slftffBZfSd2Yidy92CBx1cUffhUE/tJOjd21sd25gd3n0DB9VF1SmFoOvb215F3ySRMOlcMy1duOgF29jD2a0k11dk2xvC2ySb3cidualk10IKJEmkzShgWPLcoaMCbaSfuYgdblzFBxgFo9ZftE9wolzF2a0htOjd21sd25gd3n0DB9VF1SmdblzFBxpRMOlcMy1duOgFo9ZftffBZfSd2Yidy92CBx1cUffhUE/koYvdB1vdl9vFuOpd25zBZfsGbYxdoLVcoaMCbaSfy9Xd3k0k11dk2xvC2ySb3cidualk10IKJEmkzShkoOlcMy1duOzb3OpdBa6d25lwe0IkoYvdB1vdl9vFuOpd25zBZfLCbOlRmOpdBa6d25lk11dk2xvC2ySb3cidualk107tMYSCbYzwo1vcuaScAYPcBYqwuShFuaJdoljwtOYd2O1doazKXpMfB5jfolvdJngb2YvdmY0FmajftIpwuShd2kgF3OiFmWIhtL7tmnPFolVcM8IhtnkTLcNb01NOyaHOaHIhTShkoOiforINUnvCl9mcbOgC29VfoaVfuHIhtL7tM9Jb2aVcy9jdoaidJEPhTShkoOiforINUnzfukpFy90CBfzwtIIkoOiforSkzxPHj48foI+NuOLNJFpKXPLcoy0CUE9wunZcBfgFMaXdoyjcUEPwtFvNuOPB14+bUP+hysGNy0qhTxFR3OPNJ8mRtw8DB5Mdz5Fber8R2lVcM8+wJXLcoy0CUEpKXPLcoy0CUE9wunZcBfgFMaXdoyjcUEPwtFvNuOLB14+bUP+hysGNy0qhTxFR3OLNJ8mRtw8DB5Mdz5Fber8R2lVcM8+wJXLcoy0CUEpKXPLflOsFtE9wunZcBfgF3nSDbWIhtEmRZI8Dew+B148bUS8bt9PHj4pRZFSkoOiforSRTrSAykyO19TArxkay9rOAxkTa9eWanAaakywtL7tJO2TB9LfBxlFZE9woyZFMy5wtIpKXPLC291dmWINUnjd3aVftEPwtO2ao1XwtL7tMcvFJILDUE9wer7koLINtOjd3aVfeSLDUEqNUEZhUn7tMlMwtiXFMamb21ifoYPwtIIkZ88Dew+hysGNy0qhTxFR2IZNJ8mRtO2ao1XwySLDa0SkucYCbWIhULIGXPLdB9LfBxlTMyscUE9wuOZDB0IhtELfL1iftndHa0IhTShkucAdbEZwe0IcbiXdo9LcUEPwtkFdJwSkucAdbEIBZOpwtSxbUEpKXpMd3klCBYPwtIIkucAdbEZwoyzwtO2T25lwtLIGXPLflniftE9wtF8DB5Mdz4PB148bUSpNyXvDB5Mdz4mKXPLflnifeHINUEJRZO2Aoy0buHQkucWCbOFFZPLflnift8JKXPLflnifewINUEJRZO2Aoy0buHQkucWCbWvwjShDBCIhunZcBfgdBy0C2IIhtELflnifeHSkucNdMASkucYCbWIhULIGXPLfL1vcuaScbHIBZOsd2O1doaKCB1lbUndfukpdUEPwtO2TBy0wySxbUEpbUE9woyZFMy5wti0FMlswtIIkucYCbWIBzkfwtLSfukpdUEPwtO2TBy0wySzbUEpwtL7tm1lduYlDBCIhunZcBfgdBy0C2IIhtELflnifewSkucNdMASkucYCbWIhULIGXPLfL1vcuaScbHIBZOsd2O1doaKCB1lbUndfukpdUEPwtO2TBy0wySxbUEpbUE9wuOZDB0IhtELfL1iftndHl0IhTShgWp9tm0hgWPLfoipFZ0+TB9LfBxlFZE9wtO2TB9LfBxlFzShgWpXfBkSDBHIcmaVC3Opd24IDbYHd2yLcBWPko1vcuaScA5idBApwuShDBCIhtO0DolzRT5Yd2O1doazwySLdB9LfBxlTMysca0pwuShFMa0fbkVwuOZfBA7tm0hFMa0fbkVwociduYlKXp9tmn1CMxpCZnMfB5jfolvdJnmcbOYd2O1doaTcbO0DB5mhtOsd2O1doaKCB1lRtOzcbO0DB5mwe0IkZFpwuShDBCIhtO0DolzRT5pF0xvCBOlctEPwtOsd2O1doaKCB1lwtLINT0IcMySF2ApwuShFMa0fbkVwtfYd2O1doAIdM90woxvCBOlctF7tm0hDBCIhtO0DolzRT5Yd2O1doazwySLdB9LfBxlTMysca0IBZOzcbO0DB5mbULIGXpZcbO1FM4IkuOPDbHsNL1vcuaScbHIBZOsd2O1doaKCB1lbUndkuYlfuOpdMffKXp9cBxzcBlMwtildbn0GUEPwtOzcbO0DB5mwtLpwuShFMa0fbkVwtO0DolzRT5Yd2O1doazwySLdB9LfBxlTMysca07tm0hFMa0fbkVwtfTcbO0DB5mwo5vftnMd3aVctF7tm0hFuaJdoljwoc1dMY0DB9VwoxpF3OYd2O1doazhtLIGXpMd3klCBYPwtIIkuOPDbHsNL1vcuaScbHICbHIko1vcuaScA5idBAINT4LfMySfBazwtLIGXPLd25SGA1vcuaScbHIB10INUELdB9LfBxlTMyscTShgWpZcbO1FM4Iko9VdulYd2O1doazKXp9tm0hcmaVC3Opd24Ifoazfy93FMl0ca9vfbOXfbWPhUn7tJOXCbYzwe0Ifuk1cTShDBCPDbYgf3kpfoyJdoAPk291fun1ft90cbY0RZFphbShkoiidMOScUE9wocvFoaVwtIIk291fun1ft90cbY0R3OlF3WVfui0kZXmf2wmhTShDBCIhtOPCB5LdoApwuShkuOlF3WINUEmfoazftF7tMlMwtiMf3kpfoAIhtELDoyVcoxlRtO0cbY0wtLpwuShcMYSd3YlwtIIkoiidMOScUEpKXp1dMxpdMSIhtEmd3a0Fua0R3OlF3Wvfoazft50GuWmhTShgBaSF2AIGXPLFoyzFZE9wociduYlKXp9tm1lduYlwuShkuniF3HINUnMCBxzcTShgWpLcBxlfoagcolZcBY0d3k5wtIIk291fun1ft90cbY0RZFpKXp9cBxzcUn7tJOXCbYzwe0IcMySF2A7tm0hFMa0fbkVwtOXCbYzKXp9tMc1dMY0DB9VwuOlF3Ogf3kpfoagGo1ShtLIGXPLFoyzFZE9wuOZfBA7tMlMholzb3fZDbOiCMxlhtfvfbOXfbWvGo1SRZFphbShkoiidMOScUE9wocvFoaVwtIIk291fun1ft94dBXvfoazft50GuWmRtf3CJFpKXppcJEPkoiidMOScULIGXPLfoazftE9wtf0cbY0kzShDBCIhoc3FMl0cUEPwtOPCB5LdoASkuOlF3WIhULIGXpMC2xvF2AIhtELDoyVcoxlwtL7tmaVdolVDZEPwtfvfbOXfbWvGo1SR3OlF3WVfui0kZL7tm1lduYlwuShkuniF3HINUnMCBxzcTShgWp9cBxzcUn7tJOXCbYzwe0IcMySF2A7tm0hgBaSF2AIGXPLFoyzFZE9wociduYlKXp9tmklfuaZdJELFoyzFzShgWpMfB5jfolvdJnLcBxlfoagcolZcBY0d3k5htOLDbkVCB1lhUn7tJOLDbkgDoyVcoxlwe0IHeShDBCIholzb2OpFJEPwtOLDbkVCB1lwtLptJOLDbkgDoyVcoxlwe0Id3nldMOpFJEPwtOLDbkVCB1lwtL7tMlMwtIikoOpFl9PCB5LdoAptmklfuaZdJnMCBxzcTShf2ipdoAIhtELcMlScUE9wuklCBOLDbwIhtELcolZb2iidMOScUEpwtLIGXppcJEPkocpdoAIwT0IwJ4JkJCLcMlScUEiNUEJRJ4JhUn7tMlMwtIiDbYgcolZwtIIkoOpFM5idBAIRJwvwJ4LcMlScUEphWp1dMxpdMSIhtELcolZdMyscUEVwJ8JRJOMDBxlwtL7tMaSF2AhcoaScbOlb2OpFMajfo9ZGUEPwtOLDbkVCB1lwt4mRZFVkocpdoAIhTShgWp9tMYSd3YlcolZwtIIkoOpFl9PCB5LdoAIhTShDBCIhrnZdBOpFJEPwtOLDbkVCB1lwtLpwuShFMa0fbkVwuOZfBA7tm1lduYlwuShFMa0fbkVwociduYlKXp9tm0hcmaVC3Opd24IcbilC3a0ca9sGbYxdy9zFBXPkoOJb3cldMOvFJXLcokgdblzFBxgF29jD2a0RtOLCl9Pd3Y0dMyscUXLcokgC2y0CBxvcZXLcokgfbYlFM5idBASkoOJb3niF3Y3d3kLRtOzFBXSkoOJb215F3ySb3nvFmWSko11duOpwe0IcMySF2ApGXPLca9scbYzCBflwe0IkZF7tMlMhtOLCl92cB5Ld3wINT0Ik215F3ySkZl7tJOLF24INUELcokgfMaVco9Zwt4JKmaVDbigF29jD2a0NUwVkoOJb215F3ySb3YvC2slftEVwjsPd3Y0NUwVkoOJb2ivF3OVCB1lwt4JK2OJdMyscT0JRJOLCl9jCbOido9mwt4JK3nvFmW9GZOLCl9sGbYxdy9Xd3k0gTSJKXp0Fml7tJOjd25Vwe0IdMa3wynrTZEPwtOLF24SkoOJb3azcbkVCB1lRtOLCl9XCbYzf29ZctEpKXp9C2y0C2IPArONObijcbn0DB9VwtOlhbShkoagdBazF2ymcUE9wtkyFmkvFJEZYeW6wtwVkoAsNMflfr1lF3Yic2AIhtLIRJkFdJw7tmklfuaZdjShgWPLca9scbYzCBflwe0IkZF7tmOZGUn7tJOzfoIINUELC29VdJ0+FuklFoyZcUEPwtOzFBXIhTShDBCIhtOjd25VRT5lFmkvFLYvcoAIhtLIwT0IkzEXHeEXkZLIGXppcJEPOrataAFpwuShkoagdBazF2ymcUE9wtkrCbOiCMyzcUnyFmkvFJEZYTA6wtwVDB1Xdo9LcUEPwtF6wtFSkoYvdM4sNMaZFM9ZUB5MdZEPhUEpwt4Jbo4JKXp9tm0hkuY0Dt0+cbilC3a0cUEPhTShgBYifoYPwtIIArONObijcbn0DB9VwtOlwtLIGXplC2ivwtOlKXp9tMlMwtILC29VdJ0+cbkZd3ked2OlwtIpwtr9wtFXHeEXHtFpwuShDBCIhrOyWlauhUn7tJOlb21lF3Yic2AINUEJObkZd3wIHjC2KJEJRMlsFoxvcoAIhtEmKJEmRtOjd25VRT5lFmkvFLlVcM8IhtLIhUEVwlxVwjShgWp9tMlMwtILF3OPRT5lFmkvFLYvcoAIhtLIwT0IkzEXHeEXkZLIGXppcJEPOrataAFpwuShkoagdBazF2ymcUE9wtkyFmkvFJEZYzH6wtwVDB1Xdo9LcUEPwtF6wtFSkuY0Dt0+cbkZd3kkdMcvwtIpwtLIRJkFdJw7tm0hgWp9tMlMhtOLCl92cB5Ld3wINT0Ik215F3ySDUFpGXPLcokPwe0IdMa3wo15F3ySDUILcokgDo9zfo5idBASkoOJb3azcbkVCB1lRtOLCl9XCbYzf29ZctXLcokgC2y0CBxvcZL7tMlMwtILcokPRT5jd25VcBY0b2aZFM9ZhUn7tJOlb21lF3Yic2AINUEmObkZd3wIHjI0KJEPkZ4LcokPRT5jd25VcBY0b2aZFM5vwt4mhUEmRJOLCMIsNMYvdM5lC3OgcbkZd3w7tm0hDBCPko11duOphbShkuklF3aSftE9wtOLCMIsNM11duOpb3y1cbk5htOzFBXpKXppcJILcokPRT5lFmkVdZl7tJOlb21lF3Yic2AINUEmObkZd3wIHzEzKJEmRJOLCMIsNMaZFM5vwt4JKJEJRJOLCMIsNMaZFM9ZKXp9tJOLCMIsNMYSd3YlhtL7tm1lduYlwuShkuY0dbWINUELcokPRT5XFMaXCbklhtOzFBXpKXppcJILcokPRT5lFmkVdZE8NjEpGXpLDBAPk1YOTtnyAlkNAJEzHTA6wtFVkoOJDt0+cbkZdM8IRJw6wtwVkoOJDt0+cbkZd3wpKXp9tJOzfo10RT5lGoajfbOlhtL7tMlMhtOLCMIsNMaZFM5vhbShkoagdBazF2ymcUE9wtfyFmkvFJEzHjw6wtFVkoOJDt0+cbkZdM8IRJw6wtwVkoOJDt0+cbkZd3w7tm0hkuY0dbWsNMYSd3YlhtL7tJOLCMIsNMYSd3YlhtL7tm0hgWpzdoalFtEPwerIhTShFMa0fbkVwtOlb21lF3Yic2A7tm0hDBCIholzF2a0wtIIky9WT1YAwySmDB5zfoySdtffwtLpwuShkoOlCmamwe0IHeShkoaZFM9Zwe0IHeShkoagdBazF2ymcUE9wtFmKXPLDB5zfoySdoaLb2aZFM9Zwe0IHeShkoOJb3cldMOvFJE9wolzF2a0wtIIky9WT1YAwySmcokgfMaVco9Zk10IhUE/ky9WT1YAwySmcokgfMaVco9Zk10IKJEmkzShkoYScByVwe0IDbYzcbWIhtELb1nNA1WIBZfjdoaidJffwtLIkJCLb1nNA1WIBZfjdoaidJffwe09werINZfrAL9WwyOnWLxywrlowraCUaYAAZnMCl9ico1pdJXIcMkgDM9Jb2aVfukpcbHSwocJb2pvCl9ldmOZDBazb3OsFtXIcMkgDM9JFZXIcMkgcoasdZXIcMkgDB1ic2azRtnMCl9ifbOPRtnMCl9MDBxlFZXIcMkgC29sdBaVfuHSwocJb3Y0CbOlFZXIcMkgC291dmOZDBazRtnMCl9Md3ksCMxvC2szKZF6wtFmKXPLC2xlCB5gdbYzFBXINUnpF3YlftEPwtOgAr9Tatndk2YScByVk10IhUEMkJOgAr9Tatndk2YScByVk10INT0IHUE/k0OUT1EIarytTrAIcMkgCBOsDB4SwocJb2pvCl9ldmOZDBazRtnMCl9Qd2kgcB50FMllF190dbESwocJb2pvCmHSwocJb2OldB8SwocJb2lsCBflFZXIcMkgCba0DtXIcMkgcMlScbHSwocJb2YvdB1ldmOzRtnMCl9zfoy0cbHSwocJb2YvfB50FMllFZXIcMkgcM9ZdBkSd2YqFzSmKJEmkzShkoOJb3azcbkVCB1lwe0IDbYzcbWIhtELb1nNA1WIBZfLCl91F2aZdMyscUffwtLINZOgAr9Tatndk2OJb3azcbkVCB1lk10IKJEmkzShkoOJb3niF3Y3d3kLwe0IDbYzcbWIhtELb1nNA1WIBZfLCl9XCbYzf29ZctffwtLINZOgAr9Tatndk2OJb3niF3Y3d3kLk10IKJEmkzShkoOJb2ivF3OVCB1lwe0IDbYzcbWIhtELb1nNA1WIBZfLCl9Pd3Y0dMyscUffwtLINZOgAr9Tatndk2OJb2ivF3OVCB1lk10IKJEmkzShkoOJb215F3ySb3YvC2slftE9wolzF2a0wtIIky9WT1YAwySmcokgdblzFBxgF29jD2a0k10IhUE/ky9WT1YAwySmcokgdblzFBxgF29jD2a0k10IKJEmkzShkoOJb215F3ySb3nvFmWINUnpF3YlftEPwtOgAr9Tatndk2OJb215F3ySb3nvFmWmbUEpwe8Lb1nNA1WIBZfLCl9sGbYxdy9Xd3k0k10IKJEmkzShkoOJb3nZd2YlcuaZcbHINUnpF3YlftEPwtOgAr9Tatndk3Yxdy9XFM9jcBO1FMazk10IhUE/ky9WT1YAwySmF3ySb3nZd2YlcuaZcbHmbUE6wtFXkzShkoOJb2YifoySd2FINUnpF3YlftEPwtOgAr9Tatndk2OJb2YifoySd2FmbUEpwe8Lb1nNA1WIBZfLCl9jCbOido9mk10IKJEmkzShkuniF3Y3d3kLb3YiduWINUnpF3YlftEPwtOgAr9Tatndk3niF3Y3d3kLb3YiduWmbUEpwe8Lb1nNA1WIBZfXCbYzf29Zcy9zCBx0k10IKJEmkzShkoyjb3azcbkVCB1lwe0IDbYzcbWIhtELb1nNA1WIBZfiC191F2aZdMyscUffwtLINZOgAr9Tatndk2yjb3azcbkVCB1lk10IKJEmkzShkoyjb3niF3Y3d3kLwe0IDbYzcbWIhtELb1nNA1WIBZfiC19XCbYzf29ZctffwtLINZOgAr9Tatndk2yjb3niF3Y3d3kLk10IKJEmkzShkoyjb2asCBlSwe0IDbYzcbWIhtELb1nNA1WIBZfiC19ldBypdtffwtLINZOgAr9Tatndk2yjb2asCBlSk10IKJEmkzShkoyjb3OpdBa6d25lwe0IDbYzcbWIhtELb1nNA1WIBZfiC190DB1lGM9VcUffwtLINZOgAr9Tatndk2yjb3OpdBa6d25lk10IKJEmkzShkoyjb2slGUE9wolzF2a0wtIIky9WT1YAwySmCBYgD2a5k10IhUE/ky9WT1YAwySmCBYgD2a5k10IKJEmkzShDBCIhtOLCl92cB5Ld3wINT0IkZFpwuShkoaZFM9Zwe0IHTShgWppcJEPkoOJb3azcbkVCB1lwe09wtFmhUn7tJOlFmkvFJE9wer7tm0hDBCIhtOLCl9XCbYzf29ZctE9NUEmkZLIGXPLcbkZd3wINUExKXp9tMlMwtILcokgDo9zfo5idBAINT0IkZFpwuShkoaZFM9Zwe0IHTShgWppcJEPkoOJb2YifoySd2FINT0IkZFpwuShkoaZFM9Zwe0IHTShgWppcJEPkuniF3Y3d3kLb3YiduWINT0IkZFpwuShkoaZFM9Zwe0IHTShgWppcJEPkoyjb3azcbkVCB1lwe09wtFmhUn7tJOlFmkvFJE9wer7tm0hDBCIhtOiC19XCbYzf29ZctE9NUEmkZLIGXPLcbkZd3wINUExKXp9tMlMwtILCBYgcB1iDBXINT0IkZFpwuShkoaZFM9Zwe0IHTShgWppcJEPkoyjb3OpdBa6d25lwe09wtFmhUn7tJOlFmkvFJE9wer7tm0hDBCIhtOiC19qcbLINT0IkZFpwuShkoaZFM9Zwe0IHTShgWppcJEPkoaZFM9Zwe09weEpwuShDBCIhty2cbkzDB9Vb2YvdbniFMAIhtnWUyngaLaUA0lNTJXJYU4xRjWJRtw+NUwphUn7tMOpcUEPwtfkdmY0CBxSwraZFM9ZKJnWUyEIYU4xRjWId3wIDolmDoaZwuklFbapFMaLwUFpKXp9tmOZGUn7tMlMwtILcokgfMaVco9Zwe09wtfsGbYxdtFpwuShDBCIhoa4foaVF2lvdl9Sd2yLcBWPk3nLdZFphUn7tMlMwtilGuOldmYpd25gdo9icoaLhtfXco9gdblzFBXmhULIGXp0FmLIGXPLcuYVwe0IkoOJb3cldMOvFJEVwjp1dMl4b3YvC2slfe0JRJOLCl9sGbYxdy9zd2YqcbWIRJw7Do9zfe0JRJOLCl9Pd3Y0dMyscUEVwjsLCM5idBA9wJ4LcokgC2y0CBxvcZEVwjsXd3k0NbSLcokgdblzFBxgFo9Zfu07wjShkoYvdM4INUnVcbFIArONwtIIkoOzdJXLcokgfbYlFM5idBASkoOJb3niF3Y3d3kLwtL7tm1jCbOjDtEPwynrT0a4C2aXfolvdJELcUEpwuShkoYvdM4INUnMCBxzcTShkoagdBazF2ymcUEVNUEmOakUT1wIHjL5KJned3aSctnVd3WIC29VdMajftn0dZn0DoAITblTAAXIOoy0CBkiF2AVwynScByzcUnLd3aJdoAIC2ilC2SIGB91FJnaF2aZdMyscUXIAoyzF3fvFMWSwrivF3WSwoyVctnpcJnVcBaLwoklRtnYGaYOTtnTd2YqcbWIAoy0DtnzcbO0DB5mFZ4IWBxzdZnJcUnzfbklwuOPcUnrCbOiCMyzcUnPCbHICMaldJnjFMaifoaLRtnidMWIfoilwoOifoyJCbYlwuazcbwIDoyzwunlFM1pF3Ypd24Ifo8ICBYjcbYzwuOPCbWIcoy0CBkiF2AVkzShkoagdBazF2ymcUEVNUEmNokZRz48CmwvNlYOTtnrcBk1cZnYcbYzCBflKJEmRJOlRT5mcbOYcbYzCBflhtL7tJOlb21lF3Yic2AIRj0IkzxJFJ8+NokZRz5TAAXIOoaJfBFITBazF2ymcTPIkZ4LcU0+c2a0aukiC2anF1Y0FMlVcZIpKXp9tm1lduYlwuShkoYvdM4INUnMCBxzcTShkoaZFM9Zwe0IHTShkoagdBazF2ymcUEVNUEmUA5TaryHTtnyAlkNAJEzHeF6wrcvFM1td3YzwyklFbapFMazwuOPcUnWUyngArONb01cA1yHwra4foaVF2lvdJ4IAoxlCbYlwolVF3OidoXIfoipFZnlGuOldmYpd24ICB5Lwuk1dJn0DoAIDB5zfoySdoaZwoymCBlVRjxJFJ8+kzShgWp9cBxzcUn7tJOjd25Vwe0IcMySF2A7tJOlFmkvFJE9wer7tJOlb21lF3Yic2AIRj0Ik0lKA1OnTrXIOakUT1wIHzr0KJnod3ksWM9zFZnZcby1DbklFZn0DoAIAriWb1nrTZnlGuOldmYpd24If2ildJnYGaYOTtnBDBrIArONwolzwuYldoajfoaLwrcvFJnrCbOiCMyzcUnBcB5Ld3wVwynScByzcUnpdmY0CBxSwuOPDbHIcbi0cB5zDB9VwoyVctnZfB4IfoilwolVF3OidoxlFJnic2ypdJ48CmwvNJF7tm0hgWppcJIicmaVC3Opd25gcbipF3OzhtfsGbYxdolgcbkZd3kgCmlXCbYzkZLpGXpMfB5jfolvdJnsGbYxdolgcbkZd3kgCmlXCbYzhtOlFmkVdZXLcbkZF3OZRtOlFmkMDBxlRtOlFmkSDB5lhbs9tm0hDBCPkoOJb3cldMOvFJE9NUEmdblzFBxpkZl7tMlMwtilGuOldmYpd25gdo9icoaLhtfsGbYxdoLmhULIGXpzcbOgcbkZd3kgDoyVcoxlFJIJdblzFBxpb2aZFM9Zb2k5FoyzFZwpKXp0Fml7tJOjd25Vwe0IdMa3wo15F3ySDUILcokgDo9zfo5idBASkoOJb3azcbkVCB1lRtOLCl9XCbYzf29ZctXLcokgC2y0CBxvcZL7tm1jCbOjDtiyGoYlFuOpd24IkoApGXp9tmklF3OvFMagcbkZd3kgDoyVcoxlFJIpKXppcJEPdblzFBxpb2YvdM5lC3OgcbkZd3wPhULIGXPLC29VdJE9wociduYlKXPLca9scbYzCBflwe0Ik0aUAL9Uwew5KTPIW291doWIdM90woYvdM5lC3WIfo8Ifoilwr15A1yHwrOifoyJCbYlRJnWdoaiF2AIco91CMxlwoYPcBYqwulvfbwIabYlFM5idBASwyniF3Y3d3kLRtnwd3Y0RtnidMWIDBCIdMalctnJcUXITblTAAXIA29jD2a0wynifoIIF2a0folVc3HVwrySF28ICMAIF3aZcUn0DoAIOoy0CBkiF2AIDoyzwoklcB4IC3klCbOlctXICB5LwuOPcUnLCbOiCMyzcUn1F2aZwoiiFZnXcbksDbYzDB9VwuOvwoyjC2azFZn0Doy0woOifoyJCbYlRJF7tJOlb21lF3Yic2AIRj0IkzxJFJ8+NokZRz5TAAXIOoaJfBFITBazF2ymcTPIkZ5sGbYxdolgC29VdMajfy9lFmkVdZIpwt4mhUEmRM15F3ySDa9jd25VcBY0b2aZFM9ZhtL7tm0hgBaSF2AIGXPLC29VdJE9wociduYlKXPLcbkZd3wINUExKXPLca9scbYzCBflwt49wtfkTlYAWAxHwraUAL9UweWZHzPIUBCIabYpdMFITblTAAXIfMliwr15A1yHDUnMd3wIGB91FJnrCbOiCMyzcUnBcB5Ld3wSwrcvFM1td3YzwyklFbapFMazwuOPcUnYBaYOToLIObi0cB5zDB9VRJnWdoaiF2AIDB5zfoySdtn0Dolzwoa4foaVF2lvdJnidMWIFmaVwuOPcUnpdmY0CBxScbwICBfiDB4VwrySfoaZdMy0DbcSGUXIGB91woYidJniduYvwuOZGUn1F2lVcZn0DoAITblTAAXIfMliwynrTZnvFuOpd24VNokZRz4mKXp9tm0hDBCIhtOLCl92cB5Ld3wINT0Ik21zF3ySkZLIGXppcJEPcbi0cB5zDB9Vb2xvCBOlctImF3ySF3k2kZLpwuShF3ySF3k2b2YvdMcpc3aZcUEPwtkHd2fTfBkzGbY0cB1zwJxTAAxTAlcgTr9ub1YcA1OyTa9nTrXIhTShF3ySF3k2b2YvdMcpc3aZcUEPwtkHd2fTcbclFMl0GUwSA1yHA1kBb0xNO19TOacyALlABa9nTrXIhTShkoYvdM4INUnzFBxzFmcgC29VdMajftEPwtOLCl9Pd3Y0dMyscUxiFmkiGUEPk1akOtF9NJOLCl91F2aZdMyscUXmAyfrkz0+koOJb3niF3Y3d3kLRtfrCbOiCMyzcUF9NJOLCl9jCbOido9mRtfAFMyjcA9Vkz0+cMySF2ASk1OZCBYlOMlScUF9NJfeKlxzFBxzFmcgfukiC2AVfui0kZLIhTShDBCIhtOjd25Vwe09wrcnTyYyhUn7tJOlFmkvFJE9wer7tJOlb21lF3Yic2AIRj0Ik0aZFM9ZweHZYePIW291doWIdM90woYvdM5lC3WIfo8Ifoilwr1TA1yHwrOifoyJCbYlRJnWdoaiF2AIco91CMxlwoYPcBYqwulvfbwIabYlFM5idBASwyniF3Y3d3kLRtnidMWIUo9zftnzcbO0DB5mFZ4mKXpXFMlVftEmW29VdMajfolvdJnMCBlScBWiwrkldo93wolzworIcoa0CBlScBWIcoaJfBFIFMaXd3k0wo9MwuOPcUnjd25VcBY0DB9Vwoy0foasFuW6NokZwt8+kzShFukpdmWIkzxXFMA+kZ5XFMlVfy9ZwtIIF3ySF3k2b2aZFM9ZFZEPhUx0FmalwtLIRJF8R3nZcT4mKXpLDBAIhtL7tm0hgBaSF2AIGXPLC29VdJE9wociduYlKXPLcbkZd3wINUExKXPLca9scbYzCBflwt49wtfkTlYAWAxHwraUAL9UweHzHjPIOM9ZdAkvF3HIAMaxfBlZcbHIfoilwyYOTtnTcbk2cbwIObi0cB5zDB9VwtiXDungF3ySF3k2b3OzRMOSdtnvFJnXDungF3ySF3k2RMOSdtLVwynScByzcUnpdmY0CBxSwuOPDbHIcbi0cB5zDB9VwoyVctnZfB4IfoilwolVF3OidoxlFJnic2ypdJ48CmwvNJF7tm0hgWppcJEPkoYvdM4pwuShDBCIhtOLCl92cB5Ld3wINT0Ik215F3ySkZLIGXPLfMaZF2lvdJE9wtOjd25VRT5mcbOnfuOZDBk1foAIhtnjd25zfoyVftEPwtkWOr86KLyAaykgA0aUaLaUb1cyAlYkT04JhUEpKXPLdByQd3wINUnlGunSd2OlwtIIkZ4mRtO2cbkzDB9VwtL7tMlMwtILdByQd3wIBznfwe49weApwuShkoagdBazF2ymcUEVNUEmkzShgBaSF2AIGXPLcbkZd3wINUExKXPLca9scbYzCBflwt49wtfoCbOidtnkdmY0CBxSwraZFM9ZKJnYGaYOTtE1RjEId3wIDolmDoaZwuklFbapFMaLRJnADolzwuYPd3aSctnJcUnidJnlCbY5wocpGtXICbHICBxsd3Y0woySdtnPd3Y0DB5mwoYvdbnidMllFZnzfbnXd3k0wr15A1yHweAId3wIDolmDoaZRJF7tMajDo8IkoagdBazF2ymcTShcollwtIpKXp9tm0hDBCPkoOJb3cldMOvFJE9NUEmdblzFBxpkZl7tJO2cbkzDB9Vwe0IkoYvdM4sNmYlFmclFl92cbkzDB9VKXPLdByQd3wINUnzfBkzfuwPkuclFmYpd24SHtXxhTShDBCIhtOsCBpvFJE+NUE1hUn7tJOlb21lF3Yic2AIRj0IkZF7tm1lduYlwuShkoaZFM9Zwe0IHTShkoagdBazF2ymcUEVNUEmOMy0CBXIUB5zfoySdtnyFmkvFjPITblTAAXIYU4Xwo9Zwoipc2ilFJnZcby1Dbklct4IaoipFZnzDo91doWICMAICB4IcByzGUnMDbISwoyzwoySdB9zftnidoXIDo9zfolVcZnjd21XCB5pcbHIF3aXFo9ZftnYGaYOTtE1wo9Zwoipc2ilFJ4mKXplC2ivwtOlb21lF3Yic2A7tMOpcUEPhTShgWp9tm1lduYlwuShkoaZFM9Zwe0IHTShgWp9C2y0C2IIhtnWOr9yGoYlFuOpd24IkoAIhUn7tMlMwtILcoaJfBFpwuShcollwtIIwLOtwraZFM9ZweH1YePIwJ4LcU0+c2a0aukiC2AIhtLIRJOlRT5mcbOAFMyjcAyzA3OZDB5mwtIpwt4JNokZRz4JhTShgBaSF2AIGXPLca9scbYzCBflwt49wtfrCbOiCMyzcUnLFMl2cbwIdM90wolVF3Oidoxlct4mKXp9tm0hDBCIhtOjd25Vwtr9NUnoWAxTOULIGXppcJEPfMaZF2lvdl9jd21XCbklwtIIAriWb1cyAlYkT04SwjAVHU40wJXJNj0JhULIGXpzf2l0C2IIhtOLCl92cB5Ld3wpwuShC2yzcUEmdblzFBXmKIPLC2ySdtE9wtfeWAxHwtF7tJOJCBYqF2xiF2igcbYjCbnlwe0IHeShCmklCBS7tMYiF2AIk215F3ySDUF6tJOjCBxSwe0Ik0YnTrXIkzShkokiC2szdoyzDy9lF2YiFoAINUEXKXpJFMaiDzShC2yzcUEmdbYzFBXmKIPLC2ySdtE9wtfyBraeaaOywtF7tJOJCBYqF2xiF2igcbYjCbnlwe0IHTShCmklCBS7tm0hkoYvdMcpc19LCbOiwe0IwjX/FoiXeWpFkoyXFy92cbkzDB9Vwe0IkzwVHtF7eWPYtJ8vwoOJeWpLcBcpdMAPk0Otb1OcArAmRtEmGZOLCl92cB5Ld3k9kZL7wt8vwo15F3ySwe0IArONweP6wo15F3ySDUE9wr15A1yHDUE6KJnsF3YxdtE9wyYOTtnTcbk2cbwYtMOlcMlVcUImOrkgUr9TatFSwtf7koOJb2ivF3OVCB1lgUFpKX0hcoaMDB5lhtfYBaYOTy9TT0YROaWmRtEmGZOLCl9sGbYxdy9zd2YqcbO9kZL7wt8vwrAVOZ4IR3OsFt9sGbYxdt5zd2Yqwo9Zwt92CbwvFmaVR215F3ySct9sGbYxdoWVF29jDX0hcoaMDB5lhtfYBaYOTy9WT1kAkZXIk3SLcokgdblzFBxgFo9Zfu0mhTSIRZ8IOU5uRJEzHzE2wux8wyOPDbHIC2yVwoklwokSCB5qwolVwo1vF3WIC2yzcbHYtMOlcMlVcUImOrkgaaYyAJFSwtf7koOJb3azcbkVCB1lgUFpKX0hcoaMDB5lhtfrWl9WWaYTkZXIk3SLcokgFoyzF3fvFMO9kZL7eWpLcBcpdMAPk0Otb0YnaryHT0FmRtEmGZOLCl9jCbOido9mgUFpKX0heWPvRZntfBlSctE2HTwIRUnHcbOzwuazwoOlcMlVcUnpcJnvfbwITblTAAXIF2aZfMaZwoySdo93FZnMd3wIOaYeWanywrYwWaknW1OyAlHYtJ8vwrxlCbcpdMFICbHIHtnscByVFZn5d3aZwopvCJnjd2OlwoiiFZnidoXICMyjDZnzdoyzDoazwoazC2yXcBWSwuOPDbHIfoilwoOlcMy1duWIcM9Zwr15A1yHRI0hRZ8IA2a0folVcZn0dZExwo1lCB5zwulvfbwITblTAAXIF2aZfMaZwoiiFZnidJnzFBxgdB9LcUnvcJnKT19tWAYRA0xnA0igOaYeWanyAZXId3wIGB91woyZcUnZfB5VDB5mwr1TA1yHRI0hcoaMDB5lhtfKT19tWAYRA0xnA0igOaYeWanyAZFSwtf7kokiC2szdoyzDy9lF2YiFoa9kZL7eWPYtJ8vwynZd2YlcuaZcbHYtMOlcMlVcUImOaiyW1aAOa9TaykkTLFmRtEmGZOjCBxSgUFpKZEvRZEmOaiyW1aAOUEmwocvFJnYA1YOTtE6KJEmW0yHTtEmwocvFJnYGaYOTE0hcoaMDB5lhtfaA0agAykNW0araakyAZFSwtf7koOJb3nZd2YlcuaZcbY9kZL7wt8vweEId3wIHW0heWpLcBcpdMAPk1YnTyWmRtEmGZOXCbYzf29Zcy9zCBx0gUFpKX0heWPvRZniFuEYtMOlcMlVcUImOrataAFmRtEmHtFpKX0hcoaMDB5lhtfrOAkaO19rOaOnUAXmRtEmHtFpKX0heWpLcBcpdMAPk1aTOakgTA9rOUFSwtfrWaOnWLyTOUFpKZEvRZnrWaOnWLyTOUnvFJnoTryAOLlHOUE8RUnrOanUUAYkWaOyOtnrTZnKT1WIW0inTLfywrcUT00IOryAWAknA0AYtI0hRZ8IdMalctn0dZnjDoyVc2AIGB91FJn0DB1lGM9VcT8IDuO0FePvR3azHJ5XDuEVdMa0R3OpdBa6d25lFX0hcoaMDB5lhtfAUA1yBL9KOUFSwtf7koyjb3OpdBa6d25lgUFpKX0heWPvRZntfBlSctE2YeEIRUned21XCbOpCMlSDbO5wrYPCB5mcW0hDBCPcmaVC3Opd25gcbipF3OzhtfLCbOlb2OlcMy1duOgfolscbpvdMagF2a0kZLpwuSIeWPkcoy0ca9LcBcifBx0b3OpdBa6d25lb3YlftiAUA1yBL9KOUL7wE0hgUnlduYlwuSYtIlpdMlgF2a0htfLCbOlRmOpdBa6d25lkZXIarlYOapNTLApKX0hgW0heWPvRZntfBlSctE2HjWIRUnTcbWIOolZcBY0d3k5wyfZDbOlwynlFM1pF3Ypd24IToa2cBXIRUnKd3WITMalcoaLwr9VwyfpdMOvf3HYtMOlcMlVcUImOrlUOAYAT1kcb01NOtFSweE3YTApKZEvRZnNC3OidtnJCbYlctnaTLlCwunlFM1pF3Ypd24Idoa2cBXIcU5mRJEXYzA1RtEXYzF3eWPYtJ8vwrk1DBxLweCZYtEswyYlftnoDBxlwyfZDbOlwynlFM1pF3Ypd24IToa2cBXIRUnKd3WITMalcoaLwr9VwyfpdMOvf3HYtMOlcMlVcUImOLlHOa9YT0WmRtEXYjW0hTSIRZ8IT2Y0CBXICMyzcBWIaA5kBtnXcbksDbYzDB9VwoxlfMaSwoAVcZ4IHeC0YtXIHeC2YE0heWPvRZntfBlSctE2HzHYtMOlcMlVcUImOA5eT0Oyb1nbkZXIHUL7eWPYtJ8vwrk1DBxLweFXHtEswryLctn0DoAIfMySfBazwokldo93wuOvwokSd2YqwuOPCbWIdB9LfBxlwocZd20Ido9icolVcZnpdmOvwuOPcUnlcol0d3wVeWpFkoa4C2x1coaLb2cvFM1gdB9LfBxlFZE9woyZFMy5htFmhTSIRZ8IabYlKJnlC29sdUn0dZnJdo9jDZn0DoAIcBYvdB0IdB9LfBxlwocZd20Ido9icolVcZnpdJn0DoAIcBOpfo9ZRI0hbtOlGoYSfBOlcy9jd25MDbksCbOpd25gdB9LfBxlFZE9woyZFMy5htFmhTSIRZ8IabYlKJnjd25MDbksRBajd21swuOvwokSd2YqwuOPcUnlC29sdUnjd25MDbksCbOpd24IdB9LfBxlRI0heWPvRZnaArOnaraTeWPvRZE2HzIIKjPIWmLIOoaMCbaSfE0hNz4JKXPLC29VcMlmb21vfMagcoy0CUE9wtw8N3nPFE0hRZ8IC29VF3OidmOzeWpFkoyXFy92cbkzDB9Vwe0IkzwVHtF7eWPYtJ8vwrYPCB5mcUn0dZExwuOvwuYlcUnLcBk1cZnpdMcvwolMwulvfUnZfB4IDB50dZnXFM9JdoasFZnlGoajfbOpdMFIGB91FJnxfBaZGUEYtJ8vwtisCbLIdMalctn0dZnSd29qwoy0woi0dBXIFoymcUnzd3aZC2AIfo8IF2alwoaZFM9ZhU4YtMlMhtypF3YlftiFkoOlCmamhULIGZnFkoOlCmamwe0IHeSIgW0heWpFkoOJb3O5FoAINUEmGZOLCl92cB5Ld3k9kzSIwt8vwo15F3ySwe0IArONweP6wo15F3ySDUE9wr15A1yHDUE6KJnsF3YxdtE9wyYOTtnTcbk2cbwYtlXLcokgDo9zftE9wtf7koOJb2ivF3OVCB1lgUF7eWpFko15F3ySb3YvC2slftE9wtf7koOJb215F3ySb3YvC2slfu0mKZEvRZnyRLFVwt90dbEvdblzFBXVF29jDZnvFJEvfMyZR3k1dJ9sGbYxdoWvdblzFBxLRmYvC2SYtlXLdblzFBxgFo9ZftE9wtf7koOJb215F3ySb3nvFmO9kzSIRZ8IOU5uRJEzHzE2wux8wyOPDbHIC2yVwoklwokSCB5qwolVwo1vF3WIC2yzcbHYtlXLfbYlb3nZd2YlcuaZcbHINUEmGZOLCl9XFM9jcBO1FMazgUF7wt8vweEId3wIHW0hbtOLCl91F2aZwe0Ik3SLcokgfbYlFM5idBa9kzSYtlXLcokgFoyzFZE9wtf7koOJb3niF3Y3d3kLgUF7eWpFkoOJb2YifoySd2FINUEmGZOLCl9jCbOido9mgUF7eWPYtJ8vwo5lcBWIfo8IC2iidMflwulvfbwIfolscbpvdMA/woi0fuE6RZ91FzwVFoiXRM5lft90DB1lGM9VcbHYtMlMhtyLcBcpdMaLhtfAUA1yBL9KOUFphUn7woOlcMlVcUImarlYOapNTLAmRtEmGZOiC190DB1lGM9Vcb0mhTSIgW0heWPvRZntfBlSctE2YeEIRUned21XCbOpCMlSDbO5wrYPCB5mcW0hDBCPcmaVC3Opd25gcbipF3OzhtfLCbOlb2OlcMy1duOgfolscbpvdMagF2a0kZLpwuSIeWPkcoy0ca9LcBcifBx0b3OpdBa6d25lb3YlftiAUA1yBL9KOUL7wE0hgUnlduYlwuSYtIlpdMlgF2a0htfLCbOlRmOpdBa6d25lkZXIarlYOapNTLApKX0hgW0heWPvRZntfBlSctE2HjWIRUnTcbWIOolZcBY0d3k5wyfZDbOlwynlFM1pF3Ypd24IToa2cBXIRUnKd3WITMalcoaLwr9VwyfpdMOvf3HYtMlMhtyLcBcpdMaLhtfrUakyW1ONAllgTA9rkZLpwuSIcoaMDB5lhtfrUakyW1ONAllgTA9rkZXIHeF1YUL7wu0IRZ8IT2Y0CBXICMyzcBWIaA5kBtnXcbksDbYzDB9VwoxlfMaSwoAVcZ4IHeF1YUXIHeF3YX0heWPvRZntfBlSctE2HjWIRUnTcbWIOMlScUnbFMl0cUnWcbksDbYzDB9VwrxlfMaSwt0ITM90wr5lcBOlctnNdJnbDB5Ld3fzeWppcJIicoaMDB5lctImOLlHOa9YT0WmhULIGZnLcBcpdMAPk0ckTragTA9rkZXIHeC0YtL7wu0IRZ8IT2Y0CBXICMyzcBWIaA5kBtnXcbksDbYzDB9VwoxlfMaSwoAVcZ4IHeC0YtXIHeC2YE0hNz4JKXpEcoaScbOlb2OpFMajfo9ZGUEPwtfvfbOXfbWvfoazft8mhTShWoYPdB9LwtIIk2yXFt9jd25MDBFVFoiXkZXXYzA1wtL7tLnjDo1vctEPwtfiFuEvdB92cBcpdoazR2YvdMcpcZ5XDuEmReE3YTAIhTShWo1qcolZwtIIk291fun1ft90cbY0RZFSHeF1YUEpKXppcJEPfoazfy93FMl0ca9vfbOXfbWIhtLIkJc0cbY0b3fZDbOlb3isdtEPhULIGXppcJEPWtyMDBxlb3n1fy9jd250cB50FZEPwtfiFuEvC29VcMlmRmnPFtFSkoYvdMcpc19LCbOiwtLpwuShkoaZFM9Zwe0IHTShkoagdBazF2ymcUEVNUEmW291doWIdM90wufZDbOlwuOvwoyXFt9jd25MDBFVFoiXRJneDoajDZnXcbksDbYzDB9VFZnidMWIfuk5woymCBlVwUF7tm0hDBCIhrEicMlSca9XfbOgC29VfoaVfuHIhtEmCbnXR21vfMaMDBxlFZ9jd25MDBFVFoiXkZXLC29VcMlmb21vfMagcoy0CUEphUn7tJOlFmkvFJE9wer7tJOlb21lF3Yic2AIRj0IwlxVW291doWIdM90wufZDbOlwuOvwoyXFt9sd3clcMlScbHvC29VcMlmRmnPFt4IW2ilC2SIFoaZdBlzF2lvdmHICB5LwuOZGUnic2ypdJrJKXp9tMlMhuY0FMxldJILCBYgFoyzF3fvFMWpwe4ZHtl7tJOlFmkvFJE9wer7tJOlb21lF3Yic2AIRj0IwlxVBB91FJnaF2aZwyniF3Y3d3kLwrYidM5vftned250CBlVwr1vFMAIaoiidJEZHtneDoyZCBY0cbkzRjxJFJ8+AoxlCbYlwuYPd3k0cB4IGB91FJnXCbYzf29ZctnidMWIfuk5woymCBlVRJw7tm0hkuazcbkgFoyzF3fvFMWINUnzfukpFy90CBfzwtIIdBW1wtIIkuniF3Y3d3kLb3YiduWIRJOiC19XCbYzf29ZctEpwtL7tJOjFmlXftE9wo5lfZnldMYZGbn0DB9Vb2YSCbYzhtL7tJOqcbLIwtEIwtE9wtfwWyYQfTW1YTH0WMAiF3YQc2ImKXPLFoyzF3fvFMWINUELCBYgFoyzF3fvFMW7tJOXF3fLdoaVwtE9wer2KXPLCBOQwtEIwtEINUExRjF1KXPLC3k5FuWsNmYlfryLDmazfo1ldmWPkoyLDJL7tJOsd2WIwtEIwtE9weH7tJOjFmlXft0+F2a0TB9LfBx1FZILdB9LhTShkoaVC3k5FuOgFMazfBx0we0IkoYZGbn0RT5ldMYZGbn0htOqcbLSkuniF3Y3d3kLRtOXF3fLdoaVhTShkoaVC19lFmkvFmHINUELC3k5FuWsNMaZFM9ZFzShkoyjb3niF3Y3d3kLb2aVC3k5FuOlctE9wtOldMYZGbn0b3klF3aSfeShDBCPC291dmWPkoaVC19lFmkvFmHpwtr9weEpGXPLcbkZd3wINUExKXPLca9scbYzCBflwt49wtkFdllvfbwIabYlFJnWCbYzf29Zctnjd250CBlVFZnpdmcidolLwoYPCbkiC3OlFmHVwylvfUnjCB5Vd3WIfbYlwuOPcUntCBYqF2xiF2IIhyxFhUXIA2lVc2xlwyy1d3OlwtImhUXId3wIOo91CMxlwyy1d3OlwtiFwJLVwynScByzcUnZcB1vfMAId3wIFMaXdoyjcUnidmLId2CIfoilF2AIC2iiFMyjfoaZFZnidMWIfuk5woymCBlVRJw7tm0hDBCPF3aJF3OZb2YvfB50htOXCbYzf29Zcy9zCBx0RtfFkZFpwtr9weEIguxzfBkzfukgC291dmWPkuniF3Y3d3kLb3YiduWSk1xFkZLIwT0IHtn8guY1CmY0Fl9jd3aVftILFoyzF3fvFMOgF2ySftXmwJFpwtr9weEpGXPLcbkZd3wINUExKXPLca9scbYzCBflwt49wtkFdllvfbwIAoyzF3fvFMWIA2ySftnBCBx1cUnjd250CBlVFZnpdmcidolLwoYPCbkiC3OlFmHVwylvfUnjCB5Vd3WIfbYlwuOPcUntCBYqF2xiF2IIhyxFhUXIA2lVc2xlwyy1d3OlwtImhUXId3wIOo91CMxlwyy1d3OlwtiFwJLVwynScByzcUnZcB1vfMAId3wIFMaXdoyjcUnidmLId2CIfoilF2AIC2iiFMyjfoaZFZnidMWIfuk5woymCBlVRJw7tm0hDBCIhtOLCl92cB5Ld3wINT0Ik215F3ySk3x8koOJb3cldMOvFJE9NUEmdblzFBxpkZLIGXppcJILC2xlCB4IwT0IkZFpGXPLF3ySwe0IwI0hGZOjdoaidm0JKXPLfMySwe0IcbilC3a0ca9sGbYxdy9zFBXPkoOJb3cldMOvFJXLcokgdblzFBxgF29jD2a0RtOLCl9Pd3Y0dMyscUXLcokgC2y0CBxvcZXLcokgfbYlFM5idBASkoOJb3niF3Y3d3kLRtOzFBXSkoOJb215F3ySb3nvFmWpKXppcJILfMySwtr9wtFmhbShkoaZFM9Zwe0IHTShkolVF3Oidoxlcy9lFmkvFJE9wer7tm0hgWPLF3ySwe0IwI0hW1kyWaOywyOnWLxywonMCl9ico1pdMEIhE0hwtnIfbYlFl9pcoEIUA5AherxhUnKT1WITlaHTtnnaaONb0lKW1kyTAaKatXYtJEICuazcbkgdMyscBEIaLyUW0inAJIZHtLIOraoWaaHatnKaAxHRE0hwtnIfbYlFl9XCbYzCtnBWakeUryUheAXhUnrOAcnaAxAwr5aTrXSeWPIwonXf2OIwycnALYwWawPHTEXhUnrOAcnaAxAwr5aTrXSeWPIwon1F2aZb2asCBlSCtnBWakeUryUheAXhUnrOAcnaAxAwr5aTrXSeWPIwon1F2aZb3nZDbcpdoamcBEIUA5AherxhUnrOAcnaAxAwtFXkZXYtJEIAykkTAyUBUnROaLIwtiIfbYlFl9pcoEpeWPpwraKO0lKOT1kTL5NOrwIW0inAlYyae11foC4wrYNTrxnarAIfbOMKy9mcB5lFMySb2YpKZw7tJO2CBXINUnlGoajfbOlb215F3ySb3YxdtILcokgfMaVco9ZRtOLCl9sGbYxdy9zd2YqcbWSkoOJb2ivF3OVCB1lRtOLCl9jCbOido9mRtOLCl91F2aZdMyscUXLcokgFoyzF3fvFMWSkuYxdtXLcokgdblzFBxgFo9ZftL7tMlMhtO2CBXIwT0IkZFpGXPLcbkZd3wINUExKXPLDB5zfoySdoaLb2aZFM9Zwe0IHTShgWPLF3ySwe0IwLYUOAyAOUnAWAkHOUnIcMkgCba0DoEPeWPIwolLwrlKatEPHTrpwr5NatnKaAxHwryaar9gUA5eALaYOA5ARE0hwtnifbOPwycnALYwWawIhew1YULIOraoWaaHatnKaAxHRE0hwtnWALlYWakcwrsyBUEPDBWpeWPpeWpyTLfkTLAINUnkTL5NOrwYtLyaar9gUA5eALaYOA5Awe0IHW0hW0inALyearaUwyYyatn1foC4eWpeT0xHWaOywua0cjigc2aVcbkidy9jDTSJKXPLfMySwe0IcbilC3a0ca9sGbYxdy9zFBXPkoOJb3cldMOvFJXLcokgdblzFBxgF29jD2a0RtOLCl9Pd3Y0dMyscUXLcokgC2y0CBxvcZXLcokgfbYlFM5idBASkoOJb3niF3Y3d3kLRtOzFBXSkoOJb215F3ySb3nvFmWpKXppcJILfMySwtr9wtFmhbShkoaZFM9Zwe0IHTShkolVF3Oidoxlcy9lFmkvFJE9wer7tm0hkuYxdtE9wtkeALanarAIarytTrAICocJb2pvCmYIwtIYtJEIColLCtnkTlWPHTrpwr5NatnKaAxHwryaar9gUA5eALaYOA5ARE0hwtnIDM9Jb25idBaIwycnALYwWawPYTEpwrOyOLyaTyWITlaHTtXYtJEICoYZcBy0cBOIwycnALYwWawPHTwpwrOyOLyaTyWITlaHTtXYtJEICoYZcBy0cBOgfuYIwrOnaraAUA1ywrOyOLyaTyWITlaHTtXYtJEICoxiF3OgcBOpfoEIaLyUW0inAJIxHJLIOraoWaaHatnKaAxHRE0hwtnIdoyzfy9lcol0b3OzCtnrWaOyarlYOUnrOAcnaAxAwr5aTrXSeWPIwon1F2aZb2lLCtnkTlWPHTrpwrOyOLyaTyWITlaHTtXYtJEICopvCl94dBxIwrxNTLfAOaiARE0hwtnWALlYWakcwrsyBUEIhonpcoEpRE0hwtnkTLOyBtnkOyigDM9Jb25idBAIhonQd2kgdMyscBEpRE0hwtnkTLOyBtnkOyigfbYlFl9pctEPCuazcbkgDBOIhW0hhUnyTLfkTLA9UA5KT0OtwrYwWakTOaW9fbOMKtneT0xHWaOywua0cjigc2aVcbkidy9jDTSJKXPLfMySwe0IcbilC3a0ca9sGbYxdy9zFBXPkoOJb3cldMOvFJXLcokgdblzFBxgF29jD2a0RtOLCl9Pd3Y0dMyscUXLcokgC2y0CBxvcZXLcokgfbYlFM5idBASkoOJb3niF3Y3d3kLRtOzFBXSkoOJb215F3ySb3nvFmWpKXppcJILfMySwtr9wtFmhbShkoaZFM9Zwe0IHTShkolVF3Oidoxlcy9lFmkvFJE9wer7tm0hkuYxdtE9wtkeALanarAIarytTrAICocJb2pvCl9ldmOZDBazCtEPeWPIwonpcoEIUA5AherxhUnKT1WITlaHTtnnaaONb0lKW1kyTAaKatXYtJEICopvCl9pcoEIUA5AherxhUnKT1WITlaHTtXYtJEICuOzCtnkTlWPHTrpwrOyOLyaTyWITlaHTtXYtJEICo5idBaIwycnALYwWawPHjA1hUnrOAcnaAxAwr5aTrXSeWPIwonSCBkldoEIaLyUW0inAJEPHjA1hUnrOAcnaAxAwr5aTrXSeWPIwonldmOZGa92CBx1cBEIaraCatXYtJEICocpdoagcoy0CBEITr9KO0kHT0wSeWPIwonMDBxlb21pdBaIwycnALYwWawPYTEpwrOyOLyaTyWITlaHTtXYtJEICocpdoagdMyscBEIaLyUW0inAJIZYTApwrOyOLyaTyWITlaHTtXYtJEICoaVfuk5b2slGBEIaLyUW0inAJI1HtLIOraoWaaHatnKaAxHRE0hwtnIcB50FmlgfulXcBEIaLyUW0inAJIZHtLIOraoWaaHatnKaAxHRE0hwtnIFMasd3Olb2lXCtnBWakeUryUheAXhUnrOAcnaAxAwr5aTrXSeWPIwynUUA1nAlLIU0acwtEPColLCtLSeWPIwrlKOraCwolVcoa4HUnaA0lKOZntaykyOUEPCopvCl9pcoEpRE0hwtnkTLOyBtnkOyigfuHIaaYkTLFIWlOUOAAIhon0F2EpRE0hwtnkTLOyBtnkOyigcB50FmlgD2a5wyaTUA5uwrkAALaywtiIcB50FmlgD2a5CtLSeWPIwrYNTlYAALykTlWICocJb2pvCl9ldmOZDBazb0cRHBEIOL9UOAluTJnROaLIhonQd2kgDBOIhUnUOAcyALaKW0aTwonMCl9Qd2kzCtEPColLCtLIT04IOraHOaOywrYnA0YnOrAYtJLIOA5uUA5yNAlKTL9rWJneUryUA0aANba0cjIIW09HTryAOUn1foC4b2fldMaZCBxgC2L7eWPJKXPLfMySwe0IcbilC3a0ca9sGbYxdy9zFBXPkoOJb3cldMOvFJXLcokgdblzFBxgF29jD2a0RtOLCl9Pd3Y0dMyscUXLcokgC2y0CBxvcZXLcokgfbYlFM5idBASkoOJb3niF3Y3d3kLRtOzFBXSkoOJb215F3ySb3nvFmWpKXppcJILfMySwtr9wtFmhbShkoaZFM9Zwe0IHTShkolVF3Oidoxlcy9lFmkvFJE9wer7tm0hkuYxdtE9wtkeALanarAIarytTrAIcMkgDM9Jb2aVfukpcbYgfo1XhE0hwtnpctnkTlWPHTrpwr5NatnKaAxHwryaar9gUA5eALaYOA5ARE0hwtnQd2kgDBWIUA5AherxhUnKT1WITlaHTtXYtJEIfuHIUA5AherxhUnrOAcnaAxAwr5aTrXSeWPIwo5idBAIaLyUW0inAJIZYTApwrOyOLyaTyWITlaHTtXYtJEIdoyJcBXIaLyUW0inAJIZYTApwrOyOLyaTyWITlaHTtXYtJEIcB50FmlgfMySfBAIaraCatnrOAcnaAxAwr5aTrXSeWPIwocpdoagcoy0CUnHT05uWLxNWJnrOAcnaAxAwr5aTrXSeWPIwocpdoagdBlscUnBWakeUryUheAXhUnrOAcnaAxAwr5aTrXSeWPIwocpdoagdMyscUnBWakeUryUhew1YULIOraoWaaHatnKaAxHRE0hwtnldmOZGa9qcbLIaLyUW0inAJI1HtLIOraoWaaHatnKaAxHRE0hwtnMCl9ldmOZGa9pctnBWakeUryUhew1YULIOraoWaaHatnKaAxHRE0hwtnldmOZGa90GbnlwycnALYwWawPHjEpwrOyOLyaTyWITlaHTtXYtJEIFMasd3Olb2lXwycnALYwWawPYTEpwrOyOLyaTyWITlaHTtXYtJEIAykkTAyUBUnROaLIholLhUXYtJEIUA5rOaIIUAOCb2aVfuk5b2slGUEPcB50FmlgD2a5hUXYtJEIUA5rOaIIUAOCb3Ozwti0FZLSeWPIwrlKOraCwolVcoa4HUEPDM9Jb2lLhW0hhW0hOA5uUA5ywe0IUA5KT0OteWpnaaONb0lKW1kyTAaKatE9werYtLYwWaknW1OyAJnTOaWIfbOMKE0hW09HTryAOUn1foC4b2fldMaZCBxgC2L7wjShkucidtE9woa4cBY1foagdblzFBxgF3yShtOLCl92cB5Ld3wSkoOJb215F3ySb3YvC2slftXLcokgDo9zfo5idBASkoOJb2YifoySd2FSkoOJb3azcbkVCB1lRtOLCl9XCbYzf29ZctXLF3ySRtOLCl9sGbYxdy9Xd3k0hTShDBCPkucidtEiNUEmkZl7tJOlFmkvFJE9wer7tJOpdmY0CBxScBOgcbkZd3wINUExKXp9tJOzFBXINUEJW1kyWaOywyOnWLxywocJb2OldB8PeWPIwolLwrlKatEPHTrpwr5NatnKaAxHwryaar9gUA5eALaYOA5ARE0hwtnVCB1lwycnALYwWawIheAXhUnrOAcnaAxAwr5aTrXSeWPIwoymcUnkTlWIherxhUnrOAcnaAxA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TrXIWaaAT19kTLYUOA1yTlWSeWPkfbYlFl9pctnkTlWPHTrpwrOyOLyaTyWITlaHTtXYtIlVCB1lwycnALYwWawPHjA1hUnrOAcnaAxAwr5aTrXSeWPkC2y0cBfvFmLIaLyUW0inAJIZYTApwrOyOLyaTyWITlaHTtXYtIlLcbYjFMlXfolvdJnBWakeUryUhew1YULIOraoWaaHatnKaAxHRE0htBxiGB91ftnBWakeUryUhew1YULIOraoWaaHatnKaAxHRE0htbnic2a0GbnlwrlKatIxHULIOraoWaaHatnKaAxHRE0htBYvdmOldmWITr9KO1OyByWIOraoWaaHatnKaAxHRE0htanUUA1nAlLIU0acwtipctLYtJLYtLaKO0lKOUE9wrlKTL9rWI0hWaaAT19kTLYUOA1yTlWINUExeWpnaLfgAL9bb0xyTLfAUtE9weC1YTHYtLYwWaknW1OyAJnTOaWIfbOMKE0hW09HTryAOUn1foC4b2fldMaZCBxgC2L7wjShkucidtE9woa4cBY1foagdblzFBxgF3yShtOLCl92cB5Ld3wSkoOJb215F3ySb3YvC2slftXLcokgDo9zfo5idBASkoOJb2YifoySd2FSkoOJb3azcbkVCB1lRtOLCl9XCbYzf29ZctXLF3ySRtOLCl9sGbYxdy9Xd3k0hTShDBCPkucidtEiNUEmkZl7tJOlFmkvFJE9wer7tJOpdmY0CBxScBOgcbkZd3wINUExKXp9tJOzFBXINUEJW1kyWaOywyOnWLxywocJb2YvdB1ldmOzhE0hwtnpctnkTlWIherxhUnKT1WITlaHTtnnaaONb0lKW1kyTAaKatXYtJEIfuHIOryAOaOkTAAIOraoWaaHatnKaAxHRE0hwtnVCB1lwycnALYwWawIheAXhUnrOAcnaAxAwr5aTrXSeWPIwoasCBlSwycnALYwWawIherXHtLIOraoWaaHatnKaAxHRE0hwtn3cBkzDbOlwycnALYwWawIherXHtLIOraoWaaHatnKaAxHRE0hwtnIC29sdBaVfoEITr9KO1OyByWIOraoWaaHatnKaAxHRE0hwtnWALlYWakcwrsyBUEPDBWpeWPpeWpyTLfkTLAINUnkTL5NOrwYtLyaar9gUA5eALaYOA5Awe0IHW0hW0inALyearaUwyYyatn1foC4eWpeT0xHWaOywua0cjigc2aVcbkidy9jDTSJKXPLfMySwe0IcbilC3a0ca9sGbYxdy9zFBXPkoOJb3cldMOvFJXLcokgdblzFBxgF29jD2a0RtOLCl9Pd3Y0dMyscUXLcokgC2y0CBxvcZXLcokgfbYlFM5idBASkoOJb3niF3Y3d3kLRtOzFBXSkoOJb215F3ySb3nvFmWpKXppcJILfMySwtr9wtFmhbShkoaZFM9Zwe0IHTShkolVF3Oidoxlcy9lFmkvFJE9wer7tm0hkuYxdtEINUEJW1kyWaOywyOnWLxywocJb3Y0CbOlFZIYtJEIF3OifoagDBWIA01nTrxkTlWPYJLITL9Awr5aTrXIWaaAT19kTLYUOA1yTlWIW09YTAaKatEmArS6wyaVDby1cUnzfoy0cUnkOtFSeWPIwuY0CbOlwycnALYwWawPHzwpwr5NatnKaAxHwrYNTA1yTlWIk1Y0CbOlwo5idBAIf2l0DtnMDbkzftnScbO0cbwIC2yXDbOidtFSeWPIwuY0CbOlb2yJCmwIaLyUW0inAJI4hUnrOAcnaAxAwr5aTrXIW09YTAaKatEmT3n0DB9VCBXIF3OifoAICBkJFMa2DBy0DB9VwtiaAZnpFZEZwoYiFol0CBXIdoa0foaZFZLmRE0hwtnWALlYWakcwrsyBUEPF3OifoagDBWpeWPpeWpyTLfkTLAINUnkTL5NOrwYtLyaar9gUA5eALaYOA5Awe0IHW0hWacub1kNa19HOA5uarIINUEzHjrYtLYwWaknW1OyAJnTOaWIfbOMKE0hW09HTryAOUn1foC4b2fldMaZCBxgC2L7wjShkucidtE9woa4cBY1foagdblzFBxgF3yShtOLCl92cB5Ld3wSkoOJb215F3ySb3YvC2slftXLcokgDo9zfo5idBASkoOJb2YifoySd2FSkoOJb3azcbkVCB1lRtOLCl9XCbYzf29ZctXLF3ySRtOLCl9sGbYxdy9Xd3k0hTShDBCPkucidtEiNUEmkZl7tJOlFmkvFJE9wer7tJOpdmY0CBxScBOgcbkZd3wINUExKXp9tJOzFBXINUEJUA5TOakAwrlKar8IcMkgF3OifoazwycnTyayAZEYtJEIherSwtfndoyJCB1ikZXIk0yHkZLSeWPIwtIZRtEmWBxiF2sikZXIk0yRkZLSeWPIwtIzRtEmWbkpGM9VCUFSwtfnBJFpRE0hwtEPYtXIk0yZD2yVF2yzkZXIk0yUkZLSeWPIwtI1RtEmW2ySDBcvFM5pCUFSwtfeWUFpRE0hwtEPYJXIk0Yvdo9ZCBOvkZXIk0YNkZLSeWPIwtI3RtEmW29VdMajfoljfbWmRtEmW1WmhUXYtJEIheISwtfrcBxif2yZcUFSwtfrOUFpRE0hwtEPKUXIk0OpF3OZDBY0wo9MwrYvduasCMlikZXIk0OekZLSeWPIwtIxHtXIk0cSd3kpcormRtEmOLXmhUXYtJEIherxRtEmO2avFMfpCUFSwtfuWUFpRE0hwtEPHTwSwtfwCbfiDBLmRtEmUrLmhUXYtJEIherzRtEmUBOiDo8mRtEmUAWmhUXYtJEIher0RtEmUBxSDB5vDbHmRtEmUAXmhUXYtJEIher1RtEmUB5LDByVCUFSwtfkTJFpRE0hwtEPHTCSwtfkd3fikZXIk0lnkZLSeWPIwtIxYZXIk0sidmYiFZFSwtfRAZFpRE0hwtEPHTISwtfRcB50fBYqGUFSwtfRBUFpRE0hwtEPHTLSwtfHd3apF2lidMrmRtEmTrrmhUXYtJEIhewXRtEmTBypdMAmRtEmTAAmhUXYtJEIhewxRtEmTByZGBxidMWmRtEmTAWmhUXYtJEIhewZRtEmTByzF2yjDuazcbO0FZFSwtfYWUFpRE0hwtEPHjHSwtfYDBYPDBfidJFSwtfYUUFpRE0hwtEPHjWSwtfYDB5VcbYvformRtEmTA4mhUXYtJEIhew1RtEmTBlzF2lzF2lXFoLmRtEmTaHmhUXYtJEIhew2RtEmTBlzF291FMLmRtEmTA8mhUXYtJEIhew3RtEmTB9VfoyVCUFSwtfYatFpRE0hwtEPHjISwtfKcBkZCbYqCUFSwtfKOUFpRE0hwtEPHjLSwtfKcbcicormRtEmTlCmhUXYtJEIheHXRtEmTMa3wriidbnzDolZcUFSwtfKUtFpRE0hwtEPHzrSwtfKcbFIUMaZF2a5kZXIk05hkZLSeWPIwtIzHJXIk05lfZnYcbipC28mRtEmTL0mhUXYtJEIheHzRtEmTMa3wylvFMSmRtEmTlLmhUXYtJEIheH0RtEmTM9ZfoIIW2yZd2xpdMrmRtEmTLHmhUXYtJEIheH1RtEmTM9ZfoIIOoyqd3OikZXIk05rkZLSeWPIwtIzYJXIk09PDB8mRtEmT0ImhUXYtJEIheH3RtEmT2sSCBivdBrmRtEmT0SmhUXYtJEIheH4RtEmT3klc29VkZXIk09UkZLSeWPIwtIzKUXIk1nldM5zGBx2CB5pCUFSwtfWWUFpRE0hwtEPYeESwtfUDo9LcUnkF2xidMWmRtEmALLmhUXYtJEIheWxRtEmA291foIIW2yZd2xpdMrmRtEmA0HmhUXYtJEIheWZRtEmA291foIIOoyqd3OikZXIk1YrkZLSeWPIwtI0HZXIk1OldM5lF3YlcUFSwtfATJFpRE0hwtEPYeWSwtfAcbiiFZFSwtfABtFpRE0hwtEPYeASwtfafoyPkZXIk1aAkZLSeWPIwtI0YJXIk1clFM1vdmWmRtEmalWmhUXYtJEIheW3RtEmaMlZc2lVDBrmRtEmaLrmhUXYtJEIheW4RtEma2yzDolVc3OvdJFSwtfbWUFpRE0hwtEPYeLSwtfbcbY0wycpFMfpdMlikZXIk1fBkZLSeWPIwtI1HtXIk1fpF2YvdmYpdJFSwtfbUUFpRE0hwtEPYTrSwtfbGB9sDB5mkZXIk1fckZL7wjShkucidtE9woa4cBY1foagdblzFBxgF3yShtOLCl92cB5Ld3wSkoOJb215F3ySb3YvC2slftXLcokgDo9zfo5idBASkoOJb2YifoySd2FSkoOJb3azcbkVCB1lRtOLCl9XCbYzf29ZctXLF3ySRtOLCl9sGbYxdy9Xd3k0hTShDBCPkucidtEiNUEmkZl7tJOlFmkvFJE9wer7tJOpdmY0CBxScBOgcbkZd3wINUExKXp9tJOzFBXIwe0IwLYUOAyAOUnAWAkHOUnMCl9jd3aVfukpcbHIhE0hwtnpF28IW0inAJIZhUnKT1WITlaHTtnWALlYWakcwrsyBUXYtJEIdMyscUnBWakeUryUheIXhUnKT1WITlaHTtXYtJEIFukpdmOiCMxlb25idBAIaLyUW0inAJI4HtLITL9Awr5aTrXSeWPIwolzdzHIW0inAJIzhUXYtJEIdmasC29LcUnTTAyHTrlKaE0hhTSJKXPLfMySwe0IcbilC3a0ca9sGbYxdy9zFBXPkoOJb3cldMOvFJXLcokgdblzFBxgF29jD2a0RtOLCl9Pd3Y0dMyscUXLcokgC2y0CBxvcZXLcokgfbYlFM5idBASkoOJb3niF3Y3d3kLRtOzFBXSkoOJb215F3ySb3nvFmWpKXppcJILfMySwtr9wtFmhbShkoaZFM9Zwe0IHTShkolVF3Oidoxlcy9lFmkvFJE9wer7tm0hkuYxdtEINUEJUA5TOakAwrlKar8IcMkgC291dmOZDBazwycnTyayAX0hhtfnOJFSk0yoO0inTLlTaryKkZXmWBcmDoyVDbY0CB4mRtfnOLFmRtFXHeWmhW0hRtImWAXmRtfnTrknTLlnkZXmWBxJCB5pCUFSk0yHWJFSkzEXKtFpeWPShtfrBJFSk0yHO0aUUArmRtfndoflFMlikZXmOypnkZXmHerZkZLYtJXPk0yTkZXmWA1yALleWA4IA0yYT0rmRtfndBaZDBYidJnTCB1vCUFSk0yTTUFSkzExYJFpeWPShtfnOtFSk0yKOr9UALrmRtfndMOvFmkikZXmWA5rkZXmHewXkZLYtJXPk0yNkZXmWA5uT0xnkZXmWB5md2xikZXmWAfNkZXmHew0kZLYtJXPk0ykkZXmWA5uaAlHTrrmRtfndMf1DBxSCUFSk0ykWUFSkzC2HtFpeWPShtfnAUFSk0yKaryUW1OkW0rmRtfndmOiFMY0DBYikZxKaAxHRr5aTrXpeWPShtfnOZFSk0yKarluaArIWA5rwrknALkaOrrmRtfndmOpc3aiwoyVctntCbkJfBOikZXmWaOukZXmHew4kZLYtJXPk0yUkZXmWakuOA5AUA5nkZXmWbkmcB50DB5ikZXmWakukZXmHeHZkZLYtJXPk0yYkZXmWakYOA5kWUFSk0yZdBaVDBrmRtfnAL0mRtFXYTrmhW0hRtImWaFmRtfnAlatWUFSk0yZfBkikZXmWAkbkZXmYTHzkZLYtJXPk0yakZXmWaaTayknTrlnkZXmWbazfukidolikZXmWaaTkZXmHeH2kZLYtJXPk0yAkZXmWaaTaykkWUFSk0y1F3OZDBrmRtfnaaWmRtFXYeEmhW0hRtImWaPmRtfnBLaUWLykULyKkZXmWbplFMkiDBpidJFSk0yDOUFSkzEzHUFpeWPShtftAZFSk0knUryYWaHmRtftCBiidByzkZXmWLiTkZXmHeW0kZLYtJXPk0kwkZXmWLywALykTJFSk0kiDukiDB4mRtftUywmRtFXYeImhW0hRtImWLWmRtftWA5uTryrOaYwkZXmWMyVc2xicoazDtFSk0kuOtFSkzE1HtFpeWPShtftWJFSk0knALknOr9TkZXmWMyZCMyLd3HmRtftALwmRtFXYTwmhW0hRtImWlLmRtftOAxnAlaTkZXmWMaSCbk1FZFSk0kHAJFSkzrxHJFpeWPShtftOUFSk0kyTrfkaA0mRtftcBxmDbaskZXmWLaHkZXmHeA2kZLYtJXPk0kDkZXmWLaHUapykZXmWMaSDbplkZXmWLxDkZXmHeI0kZLYtJXPk0khkZXmWLaKUA4mRtftcB5pdJFSk0kyTJFSkzwXYtFpeWPShtftTUFSk0kyAL1aOrrmRtftcbksfBOikZXmWL1akZXmHeCXkZLYtJXPk0kAkZXmWLiaaryKkZXmWMi1foyVkZXmWlOKkZXmHeC0kZLYtJXPk0kNkZXmWL9HUackWUFSk0kvdol2DBrmRtftT0XmRtFXYjImhW0hRtImWLrmRtftT1YKUArIWA5rwriyAlpyO09BUA5nkZXmWM9zdMliwoyVctnwcbk6cBfvfMlVCUFSk0kkUtFSkzE3HtFpeWPShtftaZFSk0kNayYbWA5nkZXmWM90F3fidMrmRtfta0rmRtFXYzwmhW0hRtImWlCmRtftT1aBOaWIUaYHWA5rkZXmWM91fMa0wrlzdoyVctFSTlaHTtxKaAxHhW0hRtImWlwmRtftALyDUAXmRtftFMy6DBXmRtftALrmRtFXYzCmhW0hRtImUA8mRtftALlAUaYwwrlKOrlnTJnNW0anTJnAOakUUaONAlLmRtftFMl0DbYPwrlVcolidJnNC2aidJnAcbkZDbOvFmLmRr5aTrXSTlaHTtLYtJXPk0kKkZXmWlkaTLakwrOnAlaTA0yHWA0mRtftFmaVcBLIOoyZfbYzCBxidUFSk0kUTJFSkzE5YJFpeWPShtftOZFSk0kaTrfnALlnkZXmWmaSc2yZDBrmRtftO1wmRtFxHeEmhW0hRtImWLCmRtftaakRUA5nwrcnA08mRtftfbkqDB5iwrciF28mRtftOLrmRtF4YTWmhW0hRtImWLLmRtftaakaTLOkkZXmWmaZfB5LDUFSk0krUUFSkzrXKtFpeWPShtfRUtFSk0YnTAkNOrlnkZXmW2ysCM9LDBrmRtfRUr0mRtFxHTCmhW0hRtImW00mRtfeWA1yAL9NTJFSk0YidBaZd29VkZXmW01UkZXmHTwXkZLYtJXPk0YnkZXmW0yKWAOnkZXmW2yVCBOikZXmW0yKkZXmHTw0kZLYtJXPk0YBkZXmW0yWOUnBOakrOUFSk0YiFoAIaMaZcoAmRtfeAyCmRtFxHzwmhW0hRtImU1LmRtfeWalYWA4IUaYHWA5rAZFSk0YiGB1idJnkF2xidMOzkZXmW1lYkZXmHTH2kZLYtJXPk0YokZXmW0aKayknTtnnOlkkW0yKwykyAyatTrlekZXmW2aVfukidtnncmkpC2yVwyklFuaJdoljkZXmW0yokZXmHTWXkZLYtJXPk1OrkZXmW0inOtFSk0YPCBWmRtfAW0WmRtFxYeImhW0hRtImW0XmRtfeUrlHOUFSk0YPDBxlkZXmW0iHkZXmHTAZkZLYtJXPk0YKkZXmW0ikTLrmRtfeDolVCUFSk0YwTJFSkzr1YJFpeWPShtfeBtFSk0YwALlTar1nAZnkA0xnTLWmRtfeDukpF3OsCbHIUbYSCB5LkZxKaAxHRr5aTrXpeWPShtfeWZFSk0YNW09TwtiROAaHUA5uhUnkA0xnTLOTkZXmW29jd3HIhrslcBxpdMFpwrlzdoyVcuHmRr5aTrXSTlaHTtLYtJXPk0YNkZXmW09HT01tUArmRtfed2xvdBkpCUFSk0YNTtFSkzr3HtFpeWPShtfRTUFSk0YNTA9UT1HmRtfed21vFM9zkZXmW09YkZXmHTF0kZLYtJXPk0YukZXmW09KO08mRtfed25mdZFSk0YNOZFSkzr3KtFpeWPShtfeOtFSk0YNTLfNRtnAUrAIOraYT0YUWaOkWZnUOanaWLxkWZnNOJnAUrAmRtfed25mdZXIfoilwrOldB9jFMy0DBHIAMaXfBkSDBHId2CIfoilkZXmW09rkZXmHTIXkZLYtJXPk0YRkZXmW09NUZnkA0xnTLOTkZXmW29vDZnkF2xidMOzkZXmW09RkZXmHTI0kZLYtJXPk0YUkZXmW09TarrIALleWUFSk0YvF3OiwykpC2rmRtfeALLmRtFxKeImhW0hRtImW0LmRtfeT1OywrOFk0lBT0lUOUFSk0YvfoAIOyXmUbcvDbklkZXmW0lBkZXmHzI0kZLYtJXPk0iUkZXmW1kNWaOkWUFSk0YZd2y0DBrmRtfwAlCmRtFxKTrmhW0hRtImW1AmRtfeaAknkZXmW3aJCUFSk0YaWJFSkzr5HJFpeWPShtfeBUFSk0YcAykaAZFSk0Y5Fuk1FZFSk0YcAtFSkzr5YJFpeWPShtfeBJFSk0YDOAYwwykyAyatTrlekZXmW3plC2IIAMaXfBkSDBHmRtfeBLAmRtFZHeHmhW0hRtImOrSmRtfrOA5YWakRkZXmOoaVdByZDZFSk0OKUZFSkzwXKtFpeWPShtfrUJFSk0OhUAkNaaOkkZXmOoppCM91foLmRtfrULLmRtFZYjwmhW0hRtImOr0mRtfrT01kTLleWUFSk0OvdBlVDBYikZXmOr1nkZXmHjrZkZLYtJXPk0ONkZXmOr9YUA5kW0yKwykyAyatTrlekZXmOo9sDB5pC2yVwyklFuaJdoljkZXmOr9YkZXmHjr0kZLYtJXPk0aekZXmOAYaWAONAJFSk0ajfByLd3wmRtfyW1AmRtFZHTImhW0hRtImOAFmRtfyO1lWatFSk0amGbn0kZXmOAfckZXmKer4kZLYtJXPk1YBkZXmOAXIA0yHaLyrT1wmRtfydtnTCBx2CBOvFJFSk1YHaJFSkzwZHJFpeWPShtfuAUFSk0aOaAyAT1kkWAXIO1akTLankZXmOby1CbOvFMlidtnufBlVcBrmRtfuTlrmRtFZHjCmhW0hRtImOawmRtfyALlAALankZXmObkpfuklCUFSk0aUUUFSkzwzHJFpeWPShtfyOUFSk0aTar9KUArmRtfyF3OvdMlikZXmOaYAkZXmHjHzkZLYtJXPk0aAkZXmOaOwUA9WUArmRtfyfoipd3npCUFSk0aAUtFSkzwzHUFpeWPShtfoUZFSk0cnTrsHWA5rwrlTTryKOyHIhr1nTyckTLyThUFSk0cidosSCB5LwrlzdoyVcuHIhr1iducpdMyzhUFSk0cHUZFSkzwzKtFpeWPShtfoTZFSk0cnAL9ywrlTTryKOyHmRtfoCbkvcUnkF2xidMOzkZXmOlkNkZXmHjH0kZLYtJXPk0chkZXmOLlhUUFSk0cpDMLmRtfoULLmRtFZYewmhW0hRtImOLLmRtfoUA5HWA5rkZXmOMlVdoyVctFSk0ckTJFSkzw0YJFpeWPShtfoAJFSk0cUWA5eOUFSk0cZCB5jcUFSk0cUWUFSkzw1HtFpeWPShtfuOJFSk0cUOA5eUtnuaAlnTLrmRtfoFMaVC2IIO3apCB5ikZXmO1aokZXmHjA0kZLYtJXPk1nokZXmOlkyTLYwwynNTylKOaYkWUFSk0cZcB5jDtnWd2x5dMazDBrmRtfWBACmRtFZYTImhW0hRtImarCmRtfoALaKW0IIA09aariyAL4IaraUALlAT1kkOaHmRtfoFMaVC2IIA291foilFM4IaoaZFMl0d3kpcbHmRr5aTrXSTlaHTtLYtJXPk0fnkZXmO0ytT04mRtfuCBkvdJFSk0fnWJFSkzw2YJFpeWPShtfuTUFSk0fnTAkkWUFSk0fidBkpCUFSk0fYWJFSkzw3HtFpeWPShtfuOUFSk0fyT1kuUArmRtfucB9Zc2likZXmO0aNkZXmHjC4kZLYtJXPk0OykZXmO0aUTAyKBUFSk0flFM1idmLmRtfrOaAmRtFZYzCmhW0hRtImO0ImRtfuUryKWUFSk0fPCB5ikZXmO0inkZXmHjI4kZLYtJXPk0fkkZXmO0ltALyHaryUkZXmO2lJFMySfoyZkZXmO0ltkZXmHjLZkZLYtJXPk0fUkZXmO1kyOAYykZXmO3klcBYlkZXmO1kekZXmHzEXkZLYtJXPk0fHkZXmO1kyOA5HWA5rkZXmO3klcB5SCB5LkZXmO1kHkZXmHzE0kZLYtJXPk0frkZXmO1kyTLyrWUFSk0fZcB5icormRtfuALWmRtFzHeImhW0hRtImO1EmRtfuaAyrOAxNaanykZXmO3aicoaSd3aXcUFSk0fHAtFSkzHxHJFpeWPShtfuaUFSk0faWA0mRtfufByskZXmO1aYkZXmHzr2kZLYtJXPk0fAkZXmO1anaraYWAxnkZXmO3aifoasCBxikZXmO1OYkZXmHzwXkZLYtJXPk0fKkZXmO1akTLankZXmO3apdMaikZXmO0lKkZXmHzw0kZLYtJXPk0fbkZXmO1akTLanRAkkA1YnaUFSk0f1DB5lCU1tDbYzCbAmRtfuTLwmRtF2HjWmhW0hRtImO1LmRtfuaalnTLrmRtfufblidMrmRtfuaaLmRtFzHjImhW0hRtImUyWmRtfwWAlAUUFSk0iiDbOpkZXmUyOkkZXmHzHZkZLYtJXPk0iYkZXmUranALWIUaYHWA5rwryKOtnYW0ONTLyHOtnkA0xnTLOTkZXmUoaiFMWIUbYSCB5LwoyVctnYC2OvdMySctnkF2xidMOzkZxKaAxHRr5aTrXpeWPShtfBWUFSk0iNTyLIA0aywtiBWaOkW0yKwrYkayLIA1OnarApkZXmUo9SGUnTcBAIhycifoljCB4IW2l0GUnTfoy0cULmRtfBWaWmRtFzHzCmhW0hRtImUr4mRtfwT05raaknAZFSk0ivdMO1FMyzkZXmUr5rkZXmHzWXkZLYtJXPk0iRkZXmUr9KOZnRT05ukZXmUo9VcZnRd25mkZXmUrsukZXmHzW0kZLYtJXPk0iakZXmUyaKO0yUBUFSk0i1dMfiFmLmRtfwaA4mRtFzYeImhW0hRtImUaHmRtfkW0aHWA5rkZXmUBYldoyVctFSk0lTTtFSkzH1HJFpeWPShtfkTJFSk0lKOrlnkZXmUB5LDBrmRtfkTLWmRtFzYTCmhW0hRtImUAWmRtfkTLONTLaTUArmRtfkdMOvdMazDBrmRtfkOr4mRtFzYjEmhW0hRtImUawmRtfkALyKRtnkA0xnTAlewykyAyatTrlewr9okZXmUbkidJXIUbYSCB1pCZnUcbn1CMxpCZnvcJFSk0lUTJFSkzH2YtFpeWPShtfkAUFSk0lUWarmRtfkFMyxkZXmUakOkZXmHzC4kZLYtJXPk0lykZXmUakyTryKOtFSk0lZcBxidMWmRtfkALXmRtFzYzwmhW0hRtImUAXmRtfkA1knOAXmRtfkF3kicBXmRtfkA1wmRtFzYzCmhW0hRtImUaWmRtfkaryHBUFSk0l0CBx5kZXmUaOnkZXmHzIXkZLYtJXPk0pYkZXmULyYWAleWUFSk0pidBypC2rmRtfhWA0mRtFzKeImhW0hRtImUlEmRtfhWannTJFSk0piFoyVkZXmUlnKkZXmHzLZkZLYtJXPk0pNkZXmUL9UOryKkZXmUM9ZcoyVkZXmUL9UkZXmYeEXkZLYtJXPk0sDkZXmU0yDWAswA1OnTJFSk0siGMyqDuY0CB4mRtfRWaPmRtFzKTImhW0hRtImU0AmRtfROA5cWUFSk0sldmlikZXmU0aKkZXmYeE0kZLYtJXPk0skkZXmU0lUUAknarLmRtfRDbkpCMy0DUFSk0skAJFSkzw5YJFpeWPShtfRAtFSk0sNALanRtnrOA1NW1knarlewynyT1nHOaXmAZnUOanaWLxkWZnNOJFSk0svFMaiRtnrcB1vC3kifoljwynld3nScaXmFZnUcbn1CMxpCZnvcJFSk1nUUZFSkzWXKtFpeWPShtfRAJFSk0sNALanRtnUOanaWLxkWZnNOJFSk0svFMaiRtnUcbn1CMxpCZnvcJFSk0sNAJFSkzWxHtFpeWPShtfRaZFSk0saa0ykatFSk0s1f2ypftFSk0sbatFSkzWxYtFpeWPShtfROZFSk0scALfcBlYAWA4mRtfRGbkmGbpzfoyVkZXmU0fDkZXmYer3kZLYtJXPk0xnkZXmTryNwynyT1nHOaXmAZnrOA1NW1knarlewykyAyatTrlekZXmToyvwynld3nScaXmFZnrcB1vC3kifoljwyklFuaJdoljkZXmTryNkZXmYer4kZLYtJXPk0xBkZXmTryAaLlnkZXmToy0fMlikZXmTycnkZXmYew4kZLYtJXPk0xtkZXmTratWA5NTJFSk0xlCMyVd24mRtfHWL4mRtF0HjwmhW0hRtImTyHmRtfHOaYNariNkZXmToazd3OPdZFSk0xTTZFSkzWZYJFpeWPShtfHAJFSk0xkWLaUUArmRtfHDBklFMlikZXmTrkUkZXmYeHXkZLYtJXPk0xckZXmTrltBAyKwryUWAwIULyYWAikALlcWUFSk0xpCmlidJnnFMyJwrpidByPDbkpGBrmRtfHWlLmRtF0HzWmhW0hRtImTrLmRtfHUAaeUyOyTlYAOAlKkZXmTollC2i0cB5zfoapdJFSk0xkOUFSkzWzKtFpeWPShtfHatFSk0xkariaWA5kWUFSk0xpfoi1CB5pCUFSk0xAaUFSkzW0HtFpeWPShtfHaUFSk0xaBraYWL9aALFmRtfHfbildBkvfbkmkZXmTyaCkZXmYeWZkZLYtJXPk01NkZXmTAyeWA8mRtfYCBYidZFSk01nWZFSkzW0YJFpeWPShtfYUZFSk01nW0arT05kWUXIariywrcNAL1yAJncaAfNA0xnaJnUOanaWLxkWZnNOJFSk01iC2aLd25pCUXIfoilwrcvFM1lFJncfBfvF2xifJnUcbn1CMxpCZnvcJFSk01ROtFSkzIXYZFpeWPShtfYOZFSk01nOryuWaYeWawmRtfYCBOic2yzC2yZkZXmTAOukZXmYeAXkZLYtJXPk01bkZXmTAyHWafkkZXmTBySCbfpkZXmTafkkZXmYeA0kZLYtJXPk01ckZXmTAyHWalTUArmRtfYCBxiGbYpCUFSk01cAZFSkzW1KtFpeWPShtfYaJFSk01nTrOkaLaTkZXmTByScol2cbHmRtfYOyCmRtF0YjwmhW0hRtImTAXmRtfYWAxkkZXmTBySDUFSk01HUUFSkzW2YJFpeWPShtfYatFSk01nTyOnkZXmTBySformRtfYTyWmRtF0YzEmhW0hRtImTAImRtfYWakTUryHTtnkA0xnTLOTkZXmTByZF2iidoXIUbYSCB5LFZFSk01wTtFSkzA4YtFpeWPShtfYAUFSk01nAlOkTLlOaAAmRtfYCbk0DB5pFbalkZXmTaOOkZXmYeF0kZLYtJXPk01UkZXmTAyaALlAWA5kWUFSk01ifbkpfoyVDBrmRtfYAlWmRtF0YzImhW0hRtImTaAmRtfYWaaUUaOkaaHmRtfYCbaZDbOpfbHmRtfYaaHmRtF0KeEmhW0hRtImBaWmRtfYWalNayOykZXmTBy5d3O0cUFSTlaHTtxKaAxHhW0hRtImTaImRtfYOaikW08mRtfYcbipC28mRtfYOaImRtF0KeWmhW0hRtImOL0mRtfYUAYUT05yA0lnRtnoOAOyALyAOAWIA1OnaraTwr9okZXmTBljFM9VcbYpCUXIOMaLcbkifoaLwyY0CbOlFZnvcJFSk0cTTUFSkzA4HZFpeWPShtfYOtFSk01NTrONaLrSwykyAyatTrlewr9okZXmTB9Sco92CUXIAMaXfBkSDBHId2CmRtfYOrrmRtF0KTImhW0hRtImTAHmRtfYT05nW08mRtfYd25iC28mRtfYW08mRtF0KTwmhW0hRtImTA4mRtfYT05uT0xkWUFSk01vdMfvdolikZXmTA5ukZXmYeL2kZLYtJXPk01TkZXmTA9KayYyAlknatFSk01vdmOzcbkZCbWmRtfYA1wmRtF1HeEmhW0hRtImTArmRtfYT1kNW0YNkZXmTB9Zd2YjdZFSk01nAJFSkzAXYtFpeWPShtfYBJFSk01NBLyYWLlOaAAmRtfYd3pidBkpFbalkZXmTA9DkZXmYTE4kZLYtJXPk01YkZXmTalnTL1nAJFSk015CB5sCbwmRtfYTawmRtFxHeWmhW0hRtImTLrmRtfKWA1kWLlnkZXmTMysDBkpCUFSk05nTUFSkzAxYJFpeWPShtfKAJFSk05naakakZXmTMy1FmAmRtfKAlAmRtF1HjEmhW0hRtImTlEmRtfKOannTtFSk05lFoySkZXmTlnHkZXmYTw0kZLYtJXPk05HkZXmTLaAUraUTryKOyHmRtfKcbOPcbkSCB5LFZFSk05HOtFSkzAZKtFpeWPShtfnTJFSk05yariyALxnTLOTwryKarlHTraTkZXmTMa0DoaZdoyVcuHIWB50DBxScbHmRtfnTlWmRtF1HzEmhW0hRtImTLHmRtfKOaFIW0yHOAONTLlnkZXmTMa3wrYidoaLd25pCUFSk05eTtFSkzA0HtFpeWPShtfKBJFSk05yaZnDOAyHWA5rkZXmTMa3wyplCBxidMWmRtfKBLXmRtF1YTWmhW0hRtImTLLmRtfKUAYnALyuaArmRtfKDBYiFMymfBrmRtfKUAHmRtF1YTImhW0hRtImTLAmRtfKUAfyAJFSk05pc2aZkZXmTLaUkZXmYTCZkZLYtJXPk05ukZXmTLluOakkWUFSk05pc2aZDBrmRtfKO0rmRtF1YjCmhW0hRtImTlAmRtfKUaaykZXmTMl1cUFSk05kaUFSkzA3HtFpeWPShtfKOJFSk05NALcNTrSIUaYHWA5rkZXmTM9ZcM9SDZnkF2xidMWmRtfKOLSmRtF1YzWmhW0hRtImTaEmRtfKT1kAUraUTJnYWakkWA5nwrlTTryKOyHmRtfKd3k0DoaZdJnYCbkpCB5iwrlzdoyVcuHmRtfYTlEmRtF1KeEmhW0hRtImTL8mRtfKT1kbWaLmRtfKd3k3CbLmRtfKT1wmRtF1YzImhW0hRtImT00mRtfNTAyKkZXmT21idJFSk09YTJFSkzAxHJFpeWPShtfWUZFSk1nnU0lTaryKkZXmAoyqDbY0CB4mRtfWWASmRtF1KeCmhW0hRtImAyFmRtfWWAxnaUFSk1nidoy1kZXmArxbkZXmYTI1kZLYtJXPk1nTkZXmAryHOaYAUA5kWA4IaraUALlAT1kcRtnNW0YaArlyOtFSk1nidoazfolVDByVwyOlFmkpfo9ZGUXIT2YjfbnpcBWmRr5aTrXSTlaHTtLYtJXPk1nnkZXmAryKWA1nkZXmAoyVCB1ikZXmAryKkZXmYTLxkZLYtJXPk1nukZXmAryWaArITLabwrfaUA5yWUFSk1niFuaiwr5lfZnufBlVcBrmRtfWTLFmRtF1KTImhW0hRtImAyLmRtfWWaknO1anBUFSk1niFMymfBy5kZXmAykckZXmYjEXkZLYtJXPk1nykZXmAraUaUFSk1nlFmAmRtfWOawmRtF2HeWmhW0hRtImArImRtfWUrlHUanWUA5yAZFSk1nPDBxpFunpdMazkZXmAriHkZXmYjE4kZLYtJXPk1nKkZXmArlAW0ykAL4mRtfWDbOjCBlZdJFSk1neTJFSkzCxHJFpeWPShtfWTtFSk1nNTryKOtFSk1nvdoyVctFSk1nNTtFSkzCxYJFpeWPShtfWatFSk1nNAlOaO0yHkZXmAo9ZfuamCBXmRtfWAlWmRtF2HjEmhW0hRtImAywmRtfWaAaUar8IALleTZFSk1n1cbk0dZnUDBYvkZXmAykkkZXmYjHXkZLYtJXPk1ynkZXmAAyAWawmRtfOCbOiFJFSk1ynatFSkzCzYtFpeWPShtfUOUFSk1kyaA5kT04mRtfUcbaVDB9VkZXmALaakZXmYjH4kZLYtJXPk1kNkZXmAL9YWA5kWUFSk1kvdByVDBrmRtfUT00mRtF2YewmhW0hRtImAlAmRtfUaaYTUAyKwrcyOraUWaOkT04mRtfUfbYzDByVwrclcoaZCbOpd24mRtfUaaHmRtF2YeHmhW0hRtImAlFmRtfUa0yKOrrmRtfUf2yVcormRtfUa0rmRtF2YeCmhW0hRtImA0ImRtfTWAlKatnwOAxyTLrmRtfTCBlVftnwcBxldMrmRtfTUr4mRtF2YTWmhW0hRtImU04mRtfTWAlKatnRUaOAAZnnTLWITLaBUaHmRtfTCBlVftnRDbO0FZnidMWITMa2DbHmRtfRTLrmRtF2YTLmhW0hRtImTrHmRtfTWAlKatnHaAYkWUFSk1YiDB50wrx1C2likZXmTrYnkZXmYjCZkZLYtJXPk1nYkZXmA0ykTlWIArlyAlkywryKOtnYUayaOAxNTJFSk1YiDB50wynpcbkZcUnidMWITBlxfBaSd24mRtfTAr0mRtF2YjCmhW0hRtImaLHmRtfTWAlKatnBUA5eOA5AwryKOtnAUrAIO1kyTLyrUA5yAZFSk1YiDB50wycpdMYldmWICB5LwuOPcUnuFMaVCBOpdMazkZXmaLYAkZXmYjFXkZLYtJXPk1fTkZXmA0yYT0rmRtfTCB1vCUFSk1fTTUFSkzI4HJFpeWPShtfTTUFSk1YnTJnYWakkTL8mRtfTCB4ITByZDB5vkZXmA01UkZXmYjF0kZLYtJXPk1YAkZXmA0yNwyONTAAIWA5rwynUUA5eUanykZXmA2yvwyOvdBAICB5LwynZDB5jDbnlkZXmA1OWkZXmYjF4kZLYtJXPk1YnkZXmA0yaOrLIWaknWLlnkZXmA2y1coLIWbkiCMlikZXmA0yakZXmYjIZkZLYtJXPk1YKkZXmA0aKOAfnTtFSk1YldMamCBXmRtfTOA4mRtF2KeCmhW0hRtImW1HmRtfTOaktUArIWA5rwr1NTlOyTLauAL8mRtfTcbkJDBrICB5Lwr1vdmOldMamFM8mRr5aTrXSTlaHTtLYtJXPk1YekZXmA0acW0iyTrxyAZFSk1YlGBYPcBxScbHmRtfTBAHmRtF2KTEmhW0hRtImA0XmRtfTUAaUALrITraNTLAmRtfTDBaZFMrIToavdMAmRtfTTrAmRtF2KTWmhW0hRtImA0FmRtfTUA5uWanNALAmRtfTDB5mCbnvFMAmRtfTO1EmRtF3HewmhW0hRtImA0SmRtfTTr9BWAskWUFSk1YSd3ciD2likZXmA1cRkZXmYzEzkZLYtJXPk1YkkZXmA0xNaLaKUArmRtfTdo92cB5pCUFSk1YBTJFSkzFXYUFpeWPShtfTWJFSk1YNTr9YT04IUaYHWA5rAZFSk1Yvdo9sd24IUbYSCB5LFZFSk1YHWJFSkzE5HtFpeWPShtfTTZFSk1YNTAyHUArmRtfTd21idolikZXmA09YkZXmYzE2kZLYtJXPk1pnkZXmA09aarIIWAcUUAYnkZXmA291foIIWBcZDBYikZXmBLyokZXmYzrXkZLYtJXPk0fTkZXmA09aarIIO0aNALfkWUnnTLWIariywyYNaaOwwyYnTLObUAYwwrlTTryKOyHmRtfTd3a0DtnucB9Zc2liwoyVctn0DoAIA291foIIA2yVcufpC2IIUbYSCB5LFZFSTlaHTtxKaAxHhW0hRtImOaHmRtfTArykTJFSk1YXCBlVkZXmOaYWkZXmYzw0kZLYtJXPk0xRkZXmA1kkwrxnTLsnkZXmA3kpwrxidMsikZXmTrsnkZXmHTW0kZLYtJXPk1YrkZXmA1arWA4mRtfTfBOidJFSk1YrTJFSkzFzYJFpeWPShtfTAJFSk1YaALlKWA1ykZXmA3aZDB5idBAmRtfTaawmRtF3YeEmhW0hRtImA0PmRtfTaLyHWLyUOtnnTLWIULyKwr1nBAaKkZXmA3cidokiFMWICB5LwrpidJnYCblldJFSk1YhTUFSkzF0YtFpeWPShtfTBJFSk1YbWapkTryKOtFSk1Y3CbppdoyVctFSk1YbBJFSkzF0KtFpeWPShtfTOUFSk1YbOAOyTJFSk1Y3cBOldJFSk1YbOUFSkzF1HJFpeWPShtfeUtFSk1YbUaODOakHWA5rkZXmA3fpfuplFMxidMWmRtfeUrAmRtF3YTCmhW0hRtImA1LmRtfTBakkWA4IWaknWJnUOanaWLxkWZFSk1Y5FMlidJnnFMyJwyklFuaJdoljkZXmA1lUkZXmYzCXkZLYtJXPk1ObkZXmaryka0yKRtnWAL9BUA5eOUnNOJneUrlKWUFSk1OiDbfidJXIAukvfMlVC2AId2CIW2ipdMrmRtfAa04mRtFxYTImhW0hRtImarPmRtfAWApkU0lTaryKkZXmaoyQDBspF3OidJFSk1OhUZFSkzF2HJFpeWPShtfABJFSk1OnTlpnTLlnRtnaTLlAOAWIALaWaAkHUAHIT0CmRtfACB56CB5pCUXIaB5pfoaLwyklFuaJdoljwo9MkZXmaypnkZXmKeH0kZLYtJXPk1OwkZXmarinUAxnTLWmRtfADoypdoyVctFSk1OwWUFSkzF2YtFpeWPShtfATtFSk1OkTA9URAxyA1OykZXmaolsd3wsToazfoAmRr5aTrXSTlaHTtLYtJXPk1OukZXmar9uTZFSk1Ovc28mRtfAO08mRtF3YjImhW0hRtImarSmRtfAT0syTryakZXmao9qcBxifUFSk1ORTtFSkzF3HJFpeWPShtfATZFSk1ONTLfnkZXmao9Vc2rmRtfAT04mRtF3YzCmhW0hRtImayWmRtfAALlKUAOnOtnnTLWIar9tWAfNkZXmaukpdMlLCBWICB5LwyOvCMymdZFSk1OATZFSkzF4HtFpeWPShtfATJFSk1OaTLlTUArmRtfAfB5pF2likZXmayaKkZXmYzI4kZLYtJXPk1OUkZXmayaUU0ackZXmauaZD2a5kZXmayaUkZXmYzLZkZLYtJXPk1OYkZXmayaUU01yTLlTaryKkZXmauaZD21ldMlzfoyVkZXmarsYkZXmYzL1kZLYtJXPk1OekZXmayaUU1HIWA5rwrYnUAYNAZnkA0xnTLOTkZXmauaZD3HICB5LwrYiDBYvFZnkF2xidMOzkZXmarYnkZXmYzL2kZLYtJXPk1OBkZXmayaBWAxakZXmaua2CBx1kZXmayaBkZXmYzL4kZLYtJXPk1aukZXmaAfnTLOnkZXmaBfidMOikZXmaAfnkZXmKeEXkZLYtJXPk1ankZXmaAsUWAlKOUFSk1aqFMypdMAmRtfaU1wmRtF4HeWmhW0hRtImWAAmRtfaTLlAOAWIWaknWJnyTAlUWaOyAZFSk1aVDbOlctnnFMyJwrasDbkifoazkZXmWakykZXmYzI0kZLYtJXPk0ftkZXmaA5kararwrskTLfrT00mRtfadMl0cBWIU2lVc2OvdUFSk0ftAJFSkzIZYJFpeWPShtfaAZFSk1aKUaOyOtnTaryAOaHmRtfadMl0cBWIA3OifoazkZXmaaYnkZXmKeWXkZLYtJXPk1aYkZXmaA5kararwyYAWaOyAZnYUA5NAJnNaaOHBAlKOZnkA0xnTLOTkZXmaB5pfoaLwyY0CbOlFZnYDB5vFJnNfbOSGBlVcZnkF2xidMOzkZxKaAxHRr5aTrXpeWPShtfaBUFSk1aUaAfaWaLmRtfaFmamfBy5kZXmaakckZXmKeA4kZLYtJXPk1aDkZXmaaptOAskA1OnTJFSk1a6CMaqDbY0CB4mRtfaBLwmRtF4YjEmhW0hRtImalAmRtfBWA5aWaOakZXmaMyVfBy0fUFSk1caatFSkzA0KtFpeWPShtfBOUFSk1cyTLaDaAaHWUFSk1cldMa6fBaSCUFSk1cyTJFSkzI2HJFpeWPShtfBTJFSk1ckOaWITLyYkZXmaMllftnKCB0mRtfBTL0mRtF3HeWmhW0hRtImaLFmRtfBUakuUA4IUaYHWA5rAZXIWlkkarlTUtFSk1cpFMfpdJnkF2xidMOzRtntFMl0DbYPkZXmaLftkZXmHeLZkZLYtJXPk1ckkZXmaLlUO0lKwrlTTryKOyHSwyAVAZ4mRtfBDbkmDB4IUbYSCB5LFZXIaU5zRJFSk1ckAJFSkzI1HtFpeWPShtfbOJFSk1fnTrxkAZnnTLWIOlaAaA5nkZXma2ySdolzwoyVctnofbO1dMrmRtfbTrCmRtF4YzCmhW0hRtImOAImRtfbOaYAOakKwyYnUryUWUFSk1flF3OlFM4IA2yPCbkikZXmOaYwkZXmYzHZkZLYtJXPk1lykZXmBAaYOA4mRtfccB1ldJFSk1lyTUFSkzI4YZFpeWPShtfDTUFSk1pnTAkkWUFSk1pidBkpCUFSk1pYWJFSkzI5YtFpeWPShtfDaZFSk1pkTAknWlfykZXmBMlsCMyJf2AmRtfDa0AmRtF3HTCmhTSJKXPLfMySwe0IcbilC3a0ca9sGbYxdy9zFBXPkoOJb3cldMOvFJXLcokgdblzFBxgF29jD2a0RtOLCl9Pd3Y0dMyscUXLcokgC2y0CBxvcZXLcokgfbYlFM5idBASkoOJb3niF3Y3d3kLRtOzFBXSkoOJb215F3ySb3nvFmWpKXppcJILfMySwtr9wtFmhbShkoaZFM9Zwe0IHTShkolVF3Oidoxlcy9lFmkvFJE9wer7tm0hkuYxdtE9wtkrAL9WwynUT0YyOyaUOUnkOJnyBrlTayHICocJb2yLcy91F2aZCeSYtLYUOAyAOUnrOAckTLaUNAYaAlkyTlOgaaYyAJnWAL9eOAOaALAICocJb2yLcy91F2aZCtikTJnpdl91F2aZb25idBAIaLyUW0inAJIZHtLSwrlKwolVb3azcbkgcB1iDBXIaLyUW0inAJI1HtLSwrlKwolVb3azcbkgFoyzFZnBWakeUryUheAXhUXIUA4IDB5gFufLwycnALYwWawPHjEpRtnkTJnpdl91F2aZb3nZDbcpdoamcUnkTlWpeWptOAfkTI0heWpTOaWIWo1lF3Yic2AINUEmkzSYtI0hA0aHOAYAwrYNaA5AhuazcbkgdMyscULIOlkNTUnMCl9ico1pdJnbUraUOUn1F2aZb25idBAINUnpdl91F2aZb25idBAIUA5ATZnEdl9jfeSYtlYyTraeatneT1aKati1F2aZb2asCBlShUnoAL9YwocJb2yLdBlVwyfwOakywuazcbkgcB1iDBXINUnpdl91F2aZb2asCBlSwrlKar8IWoagC3W7eWPYtLlowrnVb2Y0weX+weEIWA5rwrnlb2Y0weX+weEIariyTJEYtJEIwtEIwyYyTraeatEmTM90DBYlKJnaF2aZwr5idBAICB5LwrasCBlSwoySFMaicuLIcbipF3WVkZnkTlONwrnscbYzCBflKX0htWlyTyYyUACIWo5gC3WINe4IHtnAUraKwE0hwtEIwtEIA0aHOAYAwtfKd3OpC2A6wyazcbwITMyscUniduklCBO5woa4DbY0FZ4mwrlKar8IWo1lF3Yic2A7eWPktAaHA0akOJnEca9jftE8NJEXwyOwOA4IeWPIwtEIwtnTOAxyW1WIk05vfoljcTPIabYlFJnydBypdtniduklCBO5woa4DbY0FZ4mwrlKar8IWo1lF3Yic2A7wE0hwtEIwraKOtnkOjSYtI0hUACIWo1lF3Yic2AINUEmkZnAUraKeWPIUA5TOakAwrlKar8IcMkgCBOsDB4IhuazcbkgdMyscUXIfbYlFl9XCbYzRtnXf2WSwuazcbkgcB1iDBXSwuazcbkgFukpfMlScBflhW0hwtEIwycnTyayAZEPDB5gfbYlFl9VCB1lRtnpdl91F2aZb3niF3HSwolVb3n3ctXIDB5gfbYlFl9ldBypdtXIDB5gfbYlFl9XFMl2DBxlc2ApKX0hwtEIwyYyTraeatEmabYlFJnncoOlct4mwrlKar8IWo1lF3Yic2A7eWPIwtEIA0aHOAYAwrnscbYzCBflwryTwoagdBazF2ymcTSYtLaHA0AYtJEIA0aHOAYAwrnscbYzCBflwryTwoagdBazF2ymcTSYtLaKOtnkOjSYtLaKOeSYtI0heWPYtLOUT1EIAykNW0araakywrlowraCUaYAAZnIcMkgCBOsDB5gc2a0b2y1foildmOpC2y0DB9VCeSYtLYUOAyAOUnrOAckTLaUNAYaAlkyTlOgaaYyAJnWAL9eOAOaALAICocJb2yLdBlVb2flfy9ifbOPcB50DBYifolvdMEPUA4IDB5gfbYlFl9VCB1lwycnALYwWawPHjEpRtnkTJnpdl91F2aZb3niF3HIaLyUW0inAJI1HtLpeWptOAfkTI0heWpTOAxyW1WIfbYlFl9VCB1lRtn1F2aZb2lLRtn1F2aZb2asCBlSRtn1F2aZb3nZDbcpdoamcUXIcMkgCba0Dt5ifbOPwrcUT00IcMkgCBOsDB4SwocJb2y1foIYtJEIwtEIwtEIa0iyALAIfbYlFl9VCB1lwe0IDB5gfbYlFl9VCB1lwryKOtn1F2aZb3niF3HINUnpdl91F2aZb3niF3H7eWpyTLW7eWPYtI0hOykNAtnWAL9eOAOaALAIUACIOaikA1OTwonMCl9ico1pdl9mcbOgFoyzF3fvFMOgFMasDB5LcbkIKX0hW1kyWaOywrOyOLlKOaw9W1aUALaKay9aA0aUwynUT0YyOyaUOUnIcMkgCBOsDB5gc2a0b3niF3Y3d3kLb3kldBlVcoaZCtikTJnpdl91F2aZb25idBAIaLyUW0inAJIZHtLSwrlKwolVb3azcbkgcB1iDBXIaLyUW0inAJI1HtLpeWptOAfkTI0heWpTOAxyW1WIfbYlFl9VCB1lRtn1F2aZb2asCBlSRtnXf2WIOlkNTUnMCl9ico1pdJEYtJEIwtEIwyfwOakywuazcbkgdMyscUE9wolVb3azcbkgdMyscUnnTLWIfbYlFl9ldBypdtE9wolVb3azcbkgcB1iDBX7eWPYtLaKOeSYtI0heWprAL9WwynUT0YyOyaUOUnkOJnyBrlTayHIcMkgDB5zcbk0b2aVfuk5KX0hW1kyWaOywrOyOLlKOaw9W1aUALaKay9aA0aUwynUT0YyOyaUOUnIcMkgDB5zcbk0b2aVfuk5CtikTJnpdl9ldmOZGa9qcbLIaLyUW0inAJI1HtLSwrlKwolVb2pvCl9pctnkTlWSwrlKwolVb25idBAIaLyUW0inAJIZYTApRtnkTJnpdl9SCBkldtnBWakeUryUhew1YULSwrlKwolVb3cidualwyOyByWSwrlKwolVb3OzwrlKatXIUA4IDB5gDM9JdMyscUnBWakeUryUheAXhUXIUA4IDB5gFMasd3Olb2lXwycnALYwWawPYTEphW0hWLauUA4YtI0hRU0IC3klCbOlwopvCJnZd3FIDBCIdM90woa4DbY0FX0hOraeTryUOUnjftnkTlW7eWPYtlYyTraeatneT1aKatipctLIUA5ATZnjftnoAL9YwocJb2pvCmHIa0iyALAIDBWINUnpdl9Qd2kgDBW7eWPYtLlowoY0we0IHtnAUraKeWPIwrlKA0aUatnkTlONwocJb2pvCmHIholLRtnQd2kgdMyscULIaLyHaAaTwtipdl9Qd2kgDBWSwolVb2pvCM5idBApKX0hOA5rwrloKX0heWpkTlYyAlWIUA5ATZnMCl9Qd2kgcB50FMllFZildmOZGa9qcbLSwopvCl9pctXIfuHSwo5idBASwoxiCMaSRtnldmOZGa92CBx1cUXI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tILktaOwOA4YtILktWlaArOnarAIcMkgCBOsDB4YtILktWlTOaWIfbYlFl9ldBypdtE9wolVb3azcbkgcB1iDBXYtILktWlbUraUOUn1F2aZb2lLwe0IDB5gfbYlFl9pceSYtILktAaKOtnkOjSYtI0htWlkOJnEdl9jftE8NJEXwryKOtnEca9jftE8NJEXwyOwOA4IeWPIwtEIwtnTOAxyW1WIk05vfoljcTPIabYlFJnVCB1lwoyVctnldBypdtniduklCBO5woa4DbY0woyVctn3cbklwo5vftnjDoyVc2aLRJFIUA5ATZnEdBazF2ymcTSYtILkOAxTOAlowrnVb2Y0weX+weEIariyTJEYtJEIwtEIwyYyTraeatEmTM90DBYlKJnaF2aZwo5idBAICBxZcByLGUnlGolzfuHICB5LwufiFZnVd3WIC2iidMflct4mwrlKar8IWo1lF3Yic2A7eWPktAaHA0akOJnEca9jftE8NJEXwyOwOA4IeWPIwtEIwtnTOAxyW1WIk05vfoljcTPIabYlFJnldBypdtniduklCBO5woa4DbY0FZnidMWIf2yzwo5vftnjDoyVc2aLRJFIUA5ATZnEdBazF2ymcTSIeWPIwtEIOA5rwrloKX0hOAxTOW0htWlaArOnarAIcMkgCBOsDB4YtILkA0aAwuazcbkgFoyzFZE9wolVb3azcbkgFoyzFZXYtILktbn3ctE9wolVb3n3cE0htWlbUraUOUn1F2aZb2lLwe0IDB5gfbYlFl9pceSYtILkA0aHOAYAwtfcd3aZwuniF3Y3d3kLwoiiFZnJcBaVwoYPCB5mcBWVkZnkTlONwrnscbYzCBflKX0hwtnyTLWIUAC7eWPYtlYyTraeatnEdBazF2ymcUnnAZnlb21lF3Yic2A7eWPYtLaKOeSYtJw7tMlMhtOLCl9XFM9jcBO1FMazwe09werpGXPLfMySwe0IcbilC3a0ca9sGbYxdy9zFBXPkoOJb3cldMOvFJXLcokgdblzFBxgF29jD2a0RtOLCl9Pd3Y0dMyscUXLcokgC2y0CBxvcZXLcokgfbYlFM5idBASkoOJb3niF3Y3d3kLRtOzFBXSkoOJb215F3ySb3nvFmWSfuk1cUL7tMlMhtO2CBXIwT0IkZFpGXPLcbkZd3wINUExKXPLca9scbYzCBflwt49wtw8CmwvNLaZFM9ZwerXKer6wyY0d3klctnWFM9jcBO1FMAIW3klCbOpd24IObkZd3w6wyxVwjShgWpzdoalFtEPwewIhTShgWppcJILcokgFukvC2aLfbklFZE9NUExhbShkuYxdtE9wtkjCBxSwocJb2flfy9MDBxlherpKZw7tJO2CBXINUnlGoajfbOlb215F3ySb3YxdtILcokgfMaVco9ZRtOLCl9sGbYxdy9zd2YqcbWSkoOJb2ivF3OVCB1lRtOLCl9jCbOido9mRtOLCl91F2aZdMyscUXLcokgFoyzF3fvFMWSkuYxdtXLcokgdblzFBxgFo9ZftL7tMlMhtO2CBXIwT0IkZFpGXPLcbkZd3wINUExKXPLca9scbYzCBflwt49wtw8CmwvNjxJFJ8+OakUT1wIKeEZKJnADoAIDB5zfoySdoaZwoYvfBxLwo5vftnjFMaifoAICB5LR29ZwunZd3nlFMx5woa4cBY1foAIfoilwr15A1yHwuY0d3klctnXFM9jcBO1FMazwUnWdoaiF2AIdByqcUnzfbklwuOPcUnrCbOiCMyzcUn1F2aZwuSLcokgfbYlFM5idBa9woiiFzPIW1kyWaOywykNaaOkTLAIWAxAOawIAL9aarlKOUnidMWIOaiyW1aAOUnXFMl2DBxlc2azRJncd3AIdBy5woySF28If2yVftn0dZnsCBslwuY1FMAIfoilwrcvFM1td3YzwoOifoyJCbYlwuOiCMxlFZn3cbklwuY1C2YlF3YMfBxSGUnjFMaifoaLRJE8CmwvNlnScByzcUnZcbYvduclwuOPDbHIcbkZd3wICB5LwoYSDBYqwuOPcUnkdmY0CBxSwok1fuOvdJnic2ypdJ4JKXp9tm0hF
View user's profile Send private message
PostPosted: Sun Sep 04, 2011 8:40 am Reply with quote
zerobytes
Valuable expert
Valuable expert
 
Joined: Aug 30, 2008
Posts: 199




Untested

Code:

<?
define ( 'INSTALL','true');
define ( 'DEBUG','true');
error_reporting ( E_ALL );
ini_set ( "display_errors",1 );
include_once 'app/lib/crypto.php';
if(isset($_GET['info']) &&$_GET['info'] == 1){
echo '<div align="center" style="width:100%; height:50px; background-color:#CCCCCC; margin-bottom:10px;">';
echo "<h2><a href=\"install.php\">Return to the FormBoss Install Screen</a></h2>";
echo '</div>';
phpinfo();
die();
}
$preflight = "";
if(get_magic_quotes_gpc()){
$preflight = "<li>Your server is set with magic_quotes_gpc, an unnecessary and soon to be depreciated variable. Please disable this in your php.ini with( magic_quotes_gpc = Off ) for best results.</li>";
}
if(ini_get('output_buffering') == false){
$preflight = "<li>Your server doesn't have output_buffering enabled. This is not a problem, but for best performance and reliability with FormBoss, it is advisable that you enable it in your php.ini file with the default value of 4096.</li>";
}
if(ini_get('safe_mode') == true){
$preflight = "<li>Your server has safe_mode enabled, which usually means the install process will fail (FormBoss will not be able to create files and folders). To fix this set safe_mode=0 in your php.ini file. In fact, this feature is DEPRICIATED as of PHP 5.3, and it's use is not encouraged.</li>";
}
$common_options = ini_get_all();
ob_start();
phpinfo();
$phpinfo = ob_get_contents();ob_end_clean();
if(strpos($phpinfo,'MYSQLI_SOCKET') != 0){
$start = strpos($phpinfo,'<td class="e">MYSQLI_SOCKET </td>') +strlen('<td class="e">MYSQLI_SOCKET </td><td class="v">');
$end = strpos($phpinfo,'</td>',$start);
$defaults_mysql_socket_base = trim(substr($phpinfo,$start,$end -$start));
}else {
$defaults_mysql_socket_base = '';
}
$defaults_mysql_socket = isset($common_options['mysqli.default_socket']['local_value']) ?$common_options['mysqli.default_socket']['local_value'] : '';
if($defaults_mysql_socket == ""){
$defaults_mysql_socket = isset($common_options['mysql.default_socket']['local_value']) ?
$common_options['mysql.default_socket']['local_value'] : '';
}
if($defaults_mysql_socket == ""){
$defaults_mysql_socket = isset($common_options['pdo_mysql.default_socket']['local_value']) ?
$common_options['pdo_mysql.default_socket']['local_value'] : '';
}
$defaults_mysql_port = isset($common_options['mysqli.default_port']['local_value']) ?$common_options['mysqli.default_port']['local_value'] : '';
$defaults_timezone = $common_options['date.timezone']['local_value'];
class moduleCheck {
public $Modules;
function __construct() {
ob_start ();
phpinfo ( INFO_MODULES );
$data = ob_get_contents ();
ob_end_clean ();
$data = strip_tags ( $data,'<h2><th><td>');
$data = preg_replace ( '/<th[^>]*>([^<]+)<\/th>/',"<info>\\1</info>",$data );
$data = preg_replace ( '/<td[^>]*>([^<]+)<\/td>/',"<info>\\1</info>",$data );
$vTmp = preg_split ( '/(<h2>[^<]+<\/h2>)/',$data,-1,PREG_SPLIT_DELIM_CAPTURE );
$vModules = array ();
$count = count ( $vTmp );
for($i = 1;$i <$count;$i += 2) {
if (preg_match ( '/<h2>([^<]+)<\/h2>/',$vTmp [$i],$vMat )) {
$moduleName = trim ( $vMat [1] );
$vTmp2 = explode ( "\n",$vTmp [$i +1] );
foreach ( $vTmp2 as $vOne ) {
$vPat = '<info>([^<]+)<\/info>';
$vPat3 = "/$vPat\s*$vPat\s*$vPat/";
$vPat2 = "/$vPat\s*$vPat/";
if (preg_match ( $vPat3,$vOne,$vMat )) {
$vModules [$moduleName] [trim ( $vMat [1] )] = array (trim ( $vMat [2] ),trim ( $vMat [3] ) );
}elseif (preg_match ( $vPat2,$vOne,$vMat )) {
$vModules [$moduleName] [trim ( $vMat [1] )] = trim ( $vMat [2] );
}
}
}
}
$this->Modules = $vModules;
}
public function isLoaded($moduleName) {
if ($this->Modules [$moduleName]) {
return true;
}
return false;
}
public function getModuleSetting($moduleName,$setting = '') {
if ($this->isLoaded ( $moduleName ) == false) {
return 'Module not loaded';
}
if ($this->Modules [$moduleName] [$setting]) {
return $this->Modules [$moduleName] [$setting];
}elseif (empty ( $setting )) {
return $this->Modules [$moduleName];
}
return 'Setting not found';
}
public function listModules() {
foreach ( $this->Modules as $moduleName =>$values ) {
$onlyModules [] = $moduleName;
}
return $onlyModules;
}
}
function test_write_output() {
$pass = true;
if(is_writable('output/test/')){
$handle = fopen ( 'output/test/test.txt','wb');
if ($handle) {
$test = 'test';
if (fwrite ( $handle,$test )) {
fclose ( $handle );
unlink ( 'output/test/test.txt');
}else {
$pass = false;
}
}else {
$pass = false;
}
delete_directory ( 'output/test/');
}else {
$pass = false;
}
return $pass;
}
function test_write_xml() {
$pass = true;
if(is_writable('output/xml/')){
$handle = fopen ( 'output/xml/test.txt','wb');
if ($handle) {
$test = 'test';
if (fwrite ( $handle,$test )) {
fclose ( $handle );
unlink ( 'output/xml/test.txt');
}else {
$pass = false;
}
}else {
$pass = false;
}
}else {
$pass = false;
}
return $pass;
}
function delete_directory($dirname) {
$dir_handle = 0;
if (is_dir ( $dirname ))
$dir_handle = opendir ( $dirname );
if (!$dir_handle)
return false;
while ( $file = readdir ( $dir_handle ) ) {
if ($file != "."&&$file != "..") {
if (!is_dir ( $dirname ."/".$file ))
unlink ( $dirname ."/".$file );
else
delete_directory ( $dirname .'/'.$file );
}
}
closedir ( $dir_handle );
if (@rmdir ( $dirname )) {
return true;
}else {
return false;
}
}
function execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port,$multi = false){
$e_message = '';
if($db_vendor == 'mysql'){
$dsn = $db_vendor .":unix_socket=".$db_mysql_socket .";host=".$db_hostname .";dbname=".$db_catalog .";port={$db_mysql_port};";
try{
$conn = new PDO ( $dsn,$db_username,$db_password );
}catch(PDOException $e){
$e_message = "Error 244: ".$e->getMessage () ."\n";
return;
}
$e_message = '';
try {
$sth = $conn->prepare ( $sql );
if ($conn->errorCode () != '00000') {
if (DEBUG) {
$e_message = "Database Error 255: ".implode ( ': ',$conn->errorInfo () ) ."\n";
}
}
$sth->execute ();
}catch ( PDOException $e ) {
echo $e;
}
if ($conn->errorCode () != '00000') {
if (DEBUG) {
$e_message = "Error 266: ".implode ( ': ',$conn->errorInfo () ) ."\n";
}
}
if ($sth->errorCode () != '00000') {
if (DEBUG) {
$e_message = "Error 273: ".implode ( ': ',$sth->errorInfo () ) ."\n";
}
}
}
if($db_vendor == 'mysqli'){
$dbh = new mysqli($db_hostname,$db_username,$db_password,$db_catalog);
if ($dbh->connect_error) {
$e_message = 'Error 284: ('.$dbh->connect_errno .') '.$dbh->connect_error;
}
if($multi){
$result = $dbh->multi_query($sql);
if($dbh->errno){
$e_message = 'Error 303: '.$dbh->errno .": ".$dbh->error;
}
$dbh->close();
}else {
$stmt = $dbh->prepare($sql);
if($dbh->errno <>0){
die('SQL ERROR 315: '.$dbh->errno .": ".$dbh->error);
}
$stmt->execute();
if($dbh->errno){
$e_message = 'Error 322: '.$dbh->errno .": ".$dbh->error;
}
$stmt->close();
$dbh->close();
}
}
sleep ( 1 );
return $e_message;
}
if (isset ( $_POST ['install'] )) {
$debug = 0;
$error = 0;
$e_message = '';
$installed_error = 0;
$db_vendor = isset ( $_POST ['db_vendor'] ) ?$_POST ['db_vendor'] : '';
$clean = isset ( $_POST ['clean'] ) &&$_POST ['clean'] == 1 ?'DROP TABLE IF EXISTS fb_admin, fb_job_entries, fb_job_entries_tmp, fb_jobs, fb_demo, fb_images, fb_auth, fb_files, fb_comments, fb_states, fb_countries, fb_formblocks;': '';
$clean_mssql = isset ( $_POST ['clean'] ) &&$_POST ['clean'] == 1 ?'DROP TABLE fb_admin, fb_job_entries, fb_job_entries_tmp, fb_jobs, fb_demo, fb_images, fb_auth, fb_files, fb_comments, fb_states, fb_countries, fb_formblocks;': '';
$db_username = isset ( $_POST ['db_username'] ) ?$_POST ['db_username'] : '';
$db_password = isset ( $_POST ['db_password'] ) ?$_POST ['db_password'] : '';
$db_hostname = isset ( $_POST ['db_hostname'] ) ?$_POST ['db_hostname'] : '';
$db_mysql_socket = isset ( $_POST ['db_mysql_socket'] ) ?$_POST ['db_mysql_socket'] : '';
$db_mysql_port = isset ( $_POST ['db_mysql_port'] ) ?$_POST ['db_mysql_port'] : '';
$db_procedures = isset ( $_POST ['sql_procedures'] ) ?$_POST ['sql_procedures'] : '0';
$db_catalog = isset ( $_POST ['db_catalog'] ) ?$_POST ['db_catalog'] : '';
$password_salt = isset ( $_POST ['password_salt'] ) ?$_POST ['password_salt'] : '';
$ac_username = isset ( $_POST ['ac_username'] ) ?$_POST ['ac_username'] : '';
$ac_password = isset ( $_POST ['ac_password'] ) ?$_POST ['ac_password'] : '';
$ac_email = isset ( $_POST ['ac_email'] ) ?$_POST ['ac_email'] : '';
$ac_timezone = isset ( $_POST ['ac_timezone'] ) ?$_POST ['ac_timezone'] : '';
$ac_key = isset ( $_POST ['ac_key'] ) ?$_POST ['ac_key'] : '';
if ($db_vendor == '') {
$error = 1;
}
if ($db_username == '') {
$error = 1;
}
if ($db_password == '') {
$error = 1;
}
if ($db_hostname == '') {
$error = 1;
}
if ($db_catalog == '') {
$error = 1;
}
if ($password_salt == '') {
$error = 1;
}
if ($ac_username == '') {
$error = 1;
}
if ($ac_password == '') {
$error = 1;
}
if ($ac_email == '') {
$error = 1;
}
if ($ac_timezone == '') {
$error = 1;
}
if ($ac_key == '') {
$error = 1;
}
if ($error == 0) {
if (!version_compare ( PHP_VERSION,"5.1.4",">=")) {
die ( 'Install Error: PHP 5.1.4 or higher required!');
}
try {
if ($db_vendor == 'mysql') {
if (extension_loaded('pdo')) {
if (extension_loaded('pdo_mysql')) {
try {
$dsn = $db_vendor .":unix_socket=".$db_mysql_socket .";host=".$db_hostname .";dbname=".$db_catalog .";port={$db_mysql_port};";
$conn = new PDO ( $dsn,$db_username,$db_password );
}catch ( PDOException $e ) {
$conn = false;
$e_message .= 'ERROR 299: Could not connect to the MySQL Database. Please double check your Username, Password, Host, and if need be, MySQL Socket Path settings. Also be sure the Database has been created, and the database user has permission to access that database.';
$e_message .= '<br/><br/>SQL Debug Message: '.$e->getMessage();
$e_message .= '<br/><br/>SQL Debug Message: '.$e->getTraceAsString();
}
}else {
$conn = false;
$error = 1;
$e_message .= 'INSTALL ERROR 307: FormBoss Requires the PHP_PDO_MYSQL Extension. Please install this extension and run the installer again.<br/>';
}
}else {
$conn = false;
$error = 1;
$e_message .= 'INSTALL ERROR 314: FormBoss requires the PHP_PDO extension when MySQL Via PDO is selected For Database Vendor. Please install this extension and run the installer again.<br/>';
}
}
if(!function_exists('mysqli_error_bypass')){
function mysqli_error_bypass($errno,$errstr,$errfile,$errline){}
}
if($db_vendor == 'mysqli'){
if (extension_loaded('mysqli')) {
set_error_handler("mysqli_error_bypass");
try{
$conn = new mysqli($db_hostname,$db_username,$db_password,$db_catalog);
}catch(Exception $e){
}
restore_error_handler();
if (mysqli_connect_error()) {
$conn = false;
$e_message = 'ERROR 299: Could not connect to the MySQL Database. Please double check your Username, Password, Host, and if need be, MySQL Socket Path settings. Also be sure the Database has been created, and the database user has permission to access that database.';
$e_message .= '<br/><br/>SQL Debug Message: '.mysqli_connect_errno() .') '.mysqli_connect_error();
}
}else {
$conn = false;
$error = 1;
$e_message .= 'INSTALL ERROR 423: If Using MySQL via MySQLi for your Database Vendor, FormBoss Requires the MYSQLi Extension. Please install this extension and run the installer again. Alternativly, you can also try using the MySQL via PDO option.<br/>';
}
}
if ($db_vendor == 'mssql') {
if (extension_loaded('sqlsrv')) {
sqlsrv_configure ( "LogSubsystems",SQLSRV_LOG_SYSTEM_ALL );
sqlsrv_configure ( "LogSeverity",SQLSRV_LOG_SEVERITY_ALL );
$conn = sqlsrv_connect ( $db_hostname,array ('UID'=>$db_username,'PWD'=>$db_password,'Database'=>$db_catalog,'TraceOn'=>false,'TraceFile'=>'C:\sqlsrv_trace.txt') );
if ($conn == FALSE) {
$error = 1;
$e_message .= 'Error 324: Could not connect to the MSSQL Database. Please double check your Username, Password, and Host settings.';
print 'Connection failed! Below is a detailed debug report of the connection attempt:<br />';
print '<pre>'.print_r ( sqlsrv_errors (),true ) .'</pre>';
die ();
}
}else {
$conn = false;
$error = 1;
$e_message .= 'INSTALL ERROR 332: FormBoss Requires the SQL Server Extension (php_sqlsrv_ts.dll or php_sqlsrv.dll). Please install this extension and run the installer again.<br/>';
}
}
if ($conn) {
if ($db_vendor == 'mysql') {
$version = $conn->getAttribute ( constant ( "PDO::ATTR_SERVER_VERSION") );
$major = explode ( '.',$version );
if ($major [0] >= 5) {
$e_message .= '';
}else {
$error = 1;
$e_message .= 'Fatal Install Error: MySQL 5.0 or higher required. This should be an easy fix, as almost all hosting companies support MySQL 5 or higher.';
echo $e_message;
die ();
}
}
if($db_vendor == 'mysqli'){
$version = $conn->server_version;
$major = substr($version,0,1);
if ($major >= 5) {
$e_message .= '';
}else {
$error = 1;
$e_message .= 'Fatal Install Error: MySQL 5.0 or higher required. This should be an easy fix, as almost all hosting companies support MySQL 5 or higher.';
echo $e_message;
die ();
}
}
}else {
$error = 1;
}
}catch ( PDOException $e ) {
if ($debug) {
die ( "DB Error 354: ".$e->getTrace () .$e->getTraceAsString () ."<br/>");
}else {
$e_message .= 'Database driver not installed.';
}
}
if ($conn !== FALSE) {
if (version_compare ( PHP_VERSION,"5.1.4",">=")) {
switch ($db_vendor) {
case 'mysql':
$call = 'CALL ';
$backslash_escape = 0;
break;
case 'mysqli':
$call = 'CALL ';
$backslash_escape = 0;
break;
case 'mssql':
$call = 'EXECUTE ';
$backslash_escape = 1;
break;
}
$config_data = "<?php
\$app_version = '2.0';

// db
define('DB_TYPE', '{$db_vendor}'); // mysql = PDO :: mysqli = MySQLi :: mssql = SQL Server
define('DB_HOST', '{$db_hostname}');
define('MYSQL_SOCKET', '{$db_mysql_socket}'); // E.G. /tmp/mysql.sock or /var/run/mysqld/mysqld.sock
define('MYSQL_PORT', '{$db_mysql_port}'); // E.G. 3306 || This can be blank in most cases
define('DB_USER', '{$db_username}');
define('DB_PASS', '{$db_password}');
define('DB_CATALOG', '{$db_catalog}');

// Build 612 - Lets us define if our MySQL server allows for ESCAPE CHARACTERS
// Leaving as 0 means your job code has all back slashes escaped, this the default for MySQL.
// Setting to 1 means your MySQL server has an sql_mode of NO_BACKSLASH_ESCAPES, or you are running MSSQL.
define('NO_BACKSLASH_ESCAPES', '{$backslash_escape}');

// Procedures
define('EXECUTE_STRING', '{$call}'); // 'EXECUTE ' for MSSQL :: 'CALL ' for MySQL
define('USE_PROCEDURES', '{$db_procedures}'); // 0 or 1

define('SALT', '{$password_salt}');

// app
define('DEBUG', '0');
define('DEBUG_DETAIL', '0');

define('USER_MODE', 'DATABASE'); // DATABASE or FLATFILE <- DEPRICIATED DO NOT CHANGE FROM DATABASE

// need to change your timezone? http://us2.php.net/timezones
define('TIMEZONE', '{$ac_timezone}');

// Build 640 - Compatibility Change
if(function_exists('date_default_timezone_set')) {
   date_default_timezone_set(TIMEZONE);
} else {
   ini_set('date.timezone', TIMEZONE);
}

// Build 624 - Set Directory Write Permission Level - Not Needed On Windows
define('DIRECTORY_MOD', 0755); // Octal based UNIX permission level e.g. 0755, 0777

// Build 624 - Set File Write Permission Level - Not Needed On Windows
define('FILE_MOD', 0644); // Octal based UNIX permission level e.g. 0644, 0664

// Build 633
define('ENCODE_PW', 1);

// Build 700 - Add the values below to block that module from loading into the editor.
\$excluded_form_modules = array(''); // Use: ecomm to block the ecomm module from loading in the editor.
\$excluded_confirmation_modules = array(''); // Use: confirm-ecomm to block the ecomm confirmation module.

// UPDATES
// 638 :: By Default
?>";
$config_move_data = "<?php
// constants
\$app_version = '2.0';

// Change to 1 to see debug info if you run into problems executing your query
// (may need to look at html page source to see error).
if(!isset(\$debug)) { \$debug = 0; }

\$db_type = '{$db_vendor}';  // mysql = PDO :: mysqli = MySQLi :: mssql = SQL Server
\$db_host = '{$db_hostname}';
\$mysql_socket = '{$db_mysql_socket}'; // E.G. /tmp/mysql.sock or /var/run/mysqld/mysqld.sock
\$mysql_port = '{$db_mysql_port}'; // E.G. 3306 || This can be blank in most cases
\$use_procedures = '{$db_procedures}'; // 0 or 1
\$db_user = '{$db_username}';
\$db_pass = '{$db_password}';
\$db_catalog = '{$db_catalog}';

// need to change your timezone? http://us2.php.net/timezones
if(!defined('TIMEZONE')) { define('TIMEZONE', '{$ac_timezone}'); }

// Build 640 - Compatibility Change
if(function_exists('date_default_timezone_set')) {
   date_default_timezone_set(TIMEZONE);
} else {
   ini_set('date.timezone', TIMEZONE);
}

// Build 624 - Set Directory Write Permission Level - Not Needed On Windows
if(!defined('DIRECTORY_MOD')) { define('DIRECTORY_MOD', 0755); } // Octal based UNIX permission level e.g. 0755, 0777

// Build 624 - Set File Write Permission Level - Not Needed On Windows
if(!defined('FILE_MOD')) { define('FILE_MOD', 0644); } // Octal based UNIX permission level e.g. 0644, 0664
?>";
@delete_directory ( 'output/test/');
@chmod ( 'app/config.php',0755 );
@chmod ( 'app/movefiles/config.php',0755 );
@mkdir ( 'output/test/',0755 );
if (test_write_output () &&test_write_xml ()) {
if (@!file_put_contents ( 'app/config.php',$config_data )) {
$error = 1;
$e_message .= 'Could not write to app/config.php. Check permissions and try again!';
}
if (@!file_put_contents ( 'app/movefiles/config.php',$config_move_data )) {
$error = 1;
$e_message .= "\nCould not write to app/movefiles/config.php. Check permissions and try again!";
}
if(strlen($ac_password) >20){
$error = 1;
$e_message .= "\nYour User Password Cannot Contain More Than 20 Characters.<br/>Please shorten your password and try again.";
}
$user_password = strip_tags ( md5 ( $password_salt .$ac_password ) );
$crypt = new encryption_class();
$key      = 'H@Sju45534Be!ssjgh';
$password = $ac_password;
$pswdlen  = 16;
$adj      = 1.75;
$crypt->setAdjustment($adj);
$mod      = 3;
$crypt->setModulus($mod);
$encrypt_result = $crypt->encrypt($key,$password,$pswdlen);
$enc_errors = $crypt->errors;
$ac_password_encrypted = $encrypt_result;
if(count($enc_errors) != 0){
$error = 1;
$e_message .= "\nYour User Password contains invalid characters. You cannot use the Backslash (\\), Single Quote ('), or Double Quote (\"). Please remove or replace any of these characters and try again.";
}
if(substr_count($password_salt,'\'') != 0 ||substr_count($password_salt,'\\') != 0 ||substr_count($password_salt,'"') != 0){
$error = 1;
$e_message .= "\nYour Password Salt Value contains invalid characters. You cannot use the Backslash (\\), Single Quote ('), or Double Quote (\"). Please remove or replace any of these characters and try again.";
}
if ($db_vendor == 'mysql'||$db_vendor == 'mysqli') {
if($clean != ''){
$sql = "
{$clean}";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
}
$sql = "
CREATE TABLE `fb_admin` (
  `user_id` INT(11) NOT NULL AUTO_INCREMENT,
  `user_name` VARCHAR(20) DEFAULT NULL,
  `user_pass` VARCHAR(50) DEFAULT NULL,
  `pwd` VARCHAR(100) DEFAULT NULL,
  `user_email` VARCHAR(50) DEFAULT NULL,
  `user_privilege` INT(11) DEFAULT '0',
  PRIMARY KEY  (`user_id`)
) ENGINE=INNODB CHARSET=utf8 COLLATE utf8_general_ci;";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql = "CREATE TABLE `fb_auth`(
  id INT (11) NOT NULL AUTO_INCREMENT,
  auth VARCHAR (255) DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 1
CHARACTER SET utf8
COLLATE utf8_general_ci;";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql = "CREATE TABLE `fb_jobs` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `job_name` VARCHAR(50) DEFAULT NULL,
  `created` VARCHAR(12) DEFAULT NULL,
  `created_ts` DATETIME DEFAULT NULL,
  `last_edit` VARCHAR(12) DEFAULT NULL,
  `last_edit_ts` DATETIME DEFAULT NULL,
  `user_id` INT(11) DEFAULT NULL,
  `job_xml` LONGTEXT,
  PRIMARY KEY  (`id`),
  INDEX IDX_job_name (`job_name`),
  INDEX IDX_user_id (`user_id`)
) ENGINE=INNODB CHARSET=utf8 COLLATE utf8_general_ci;";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql = "CREATE TABLE `fb_job_entries` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `job_id` INT(11) NOT NULL,
  `ts` INT(11) DEFAULT NULL,
  `name` VARCHAR(255) DEFAULT NULL,
  `label` VARCHAR (255) DEFAULT NULL,
  `entry_value` TEXT,
  `file_data` LONGBLOB,
  `file_mime` VARCHAR(50) DEFAULT NULL,
  `file_name` VARCHAR(255) DEFAULT NULL,
  `entry_key` VARCHAR(50) DEFAULT NULL,
  `entry_type` VARCHAR(20) DEFAULT NULL,
  `remote_ip` VARCHAR(50) DEFAULT NULL,
  PRIMARY KEY  (`id`),
  INDEX index1 USING BTREE (`job_id`),
  INDEX IDX_ts USING BTREE (`ts`),
  INDEX IDX_entry_key USING BTREE (`entry_key`),
  CONSTRAINT `fb_job_entries_FK1` FOREIGN KEY (`job_id`) REFERENCES `fb_jobs` (`id`) ON DELETE CASCADE
) ENGINE=INNODB CHARSET=utf8 COLLATE utf8_general_ci;
";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql = "CREATE TABLE fb_job_entries_tmp(
  id INT(11) NOT NULL AUTO_INCREMENT,
  job_id INT(11) NOT NULL,
  ts INT(11) DEFAULT NULL,
  name VARCHAR(255) DEFAULT NULL,
  label VARCHAR(255) DEFAULT NULL,
  entry_value TEXT DEFAULT NULL,
  file_data LONGBLOB DEFAULT NULL,
  file_mime VARCHAR(50) DEFAULT NULL,
  file_name VARCHAR(255) DEFAULT NULL,
  entry_key VARCHAR(50) DEFAULT NULL,
  fb_entry_id VARCHAR(255) DEFAULT NULL,
  entry_type VARCHAR(20) DEFAULT NULL,
  remote_ip VARCHAR(50) DEFAULT NULL,
  PRIMARY KEY (id),
  INDEX IDX_entry_key (entry_key),
  INDEX IDX_ts (ts),
  INDEX index1 (job_id)
)
ENGINE = INNODB
AUTO_INCREMENT = 1
CHARACTER SET utf8
COLLATE utf8_general_ci;";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql = "CREATE TABLE fb_demo(
  id INT (11) NOT NULL AUTO_INCREMENT,
  name VARCHAR (50) DEFAULT NULL,
  age INT (11) DEFAULT NULL,
  email VARCHAR (50) DEFAULT NULL,
  pwd BLOB DEFAULT NULL,
  image LONGBLOB DEFAULT NULL,
  ts DATETIME DEFAULT NULL,
  bigtext LONGTEXT DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 1
CHARACTER SET utf8
COLLATE utf8_general_ci;";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql = "CREATE TABLE fb_images(
  image_id INT (11) NOT NULL AUTO_INCREMENT,
  entry_id INT (11) DEFAULT NULL,
  image_caption LONGTEXT DEFAULT NULL,
  image_name VARCHAR (100) DEFAULT NULL,
  image_mime VARCHAR (40) DEFAULT NULL,
  image_size INT (11) DEFAULT NULL,
  image_data LONGBLOB DEFAULT NULL,
  image_thumb LONGBLOB DEFAULT NULL,
  PRIMARY KEY (image_id)
)
ENGINE = INNODB
AUTO_INCREMENT = 1
CHARACTER SET utf8
COLLATE utf8_general_ci;";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql = "CREATE TABLE fb_files(
  file_id INT (11) NOT NULL AUTO_INCREMENT,
  entry_id INT (11) DEFAULT NULL,
  file_caption LONGTEXT DEFAULT NULL,
  file_name VARCHAR (100) DEFAULT NULL,
  file_mime VARCHAR (40) DEFAULT NULL,
  file_size INT (11) DEFAULT NULL,
  file_data LONGBLOB DEFAULT NULL,
  file_thumb LONGBLOB DEFAULT NULL,
  PRIMARY KEY (file_id)
)
ENGINE = INNODB
AUTO_INCREMENT = 1
AVG_ROW_LENGTH = 30720
CHARACTER SET utf8
COLLATE utf8_general_ci;";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql = "CREATE TABLE fb_formblocks(
   id INT(11) NOT NULL AUTO_INCREMENT,
   user_id INT(11) DEFAULT NULL,
   name VARCHAR(255) DEFAULT NULL,
   category VARCHAR(255) DEFAULT NULL,
   description VARCHAR(255) DEFAULT NULL,
   layout VARCHAR(255) DEFAULT NULL,
   pagetype INT(11) DEFAULT NULL,
   content LONGTEXT DEFAULT NULL,
   PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 1
AVG_ROW_LENGTH = 6553
CHARACTER SET utf8
COLLATE utf8_general_ci;";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql = "CREATE TABLE fb_comments(
  id INT (11) NOT NULL AUTO_INCREMENT,
  ts DATETIME DEFAULT NULL,
  name VARCHAR (50) DEFAULT NULL,
  email VARCHAR (100) DEFAULT NULL,
  website VARCHAR (100) DEFAULT NULL,
  `comment` LONGTEXT DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 1
CHARACTER SET utf8
COLLATE utf8_general_ci;";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql  = "CREATE TABLE fb_states(
  state_id SMALLINT(6) NOT NULL AUTO_INCREMENT COMMENT 'PK: Unique state ID',
  state VARCHAR(32) NOT NULL COMMENT 'State name with first letter capital',
  state_abbr VARCHAR(8) DEFAULT NULL COMMENT 'Optional state abbreviation (US is 2 capital letters)',
  PRIMARY KEY (state_id)
)
ENGINE = INNODB
AUTO_INCREMENT = 1
AVG_ROW_LENGTH = 321
CHARACTER SET utf8
COLLATE utf8_general_ci;";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql = "INSERT INTO fb_states VALUES
  (1, 'Alabama', 'AL'),
  (2, 'Alaska', 'AK'),
  (3, 'Arizona', 'AZ'),
  (4, 'Arkansas', 'AR'),
  (5, 'California', 'CA'),
  (6, 'Colorado', 'CO'),
  (7, 'Connecticut', 'CT'),
  (8, 'Delaware', 'DE'),
  (9, 'District of Columbia', 'DC'),
  (10, 'Florida', 'FL'),
  (11, 'Georgia', 'GA'),
  (12, 'Hawaii', 'HI'),
  (13, 'Idaho', 'ID'),
  (14, 'Illinois', 'IL'),
  (15, 'Indiana', 'IN'),
  (16, 'Iowa', 'IA'),
  (17, 'Kansas', 'KS'),
  (18, 'Kentucky', 'KY'),
  (19, 'Louisiana', 'LA'),
  (20, 'Maine', 'ME'),
  (21, 'Maryland', 'MD'),
  (22, 'Massachusetts', 'MA'),
  (23, 'Michigan', 'MI'),
  (24, 'Minnesota', 'MN'),
  (25, 'Mississippi', 'MS'),
  (26, 'Missouri', 'MO'),
  (27, 'Montana', 'MT'),
  (28, 'Nebraska', 'NE'),
  (29, 'Nevada', 'NV'),
  (30, 'New Hampshire', 'NH'),
  (31, 'New Jersey', 'NJ'),
  (32, 'New Mexico', 'NM'),
  (33, 'New York', 'NY'),
  (34, 'North Carolina', 'NC'),
  (35, 'North Dakota', 'ND'),
  (36, 'Ohio', 'OH'),
  (37, 'Oklahoma', 'OK'),
  (38, 'Oregon', 'OR'),
  (39, 'Pennsylvania', 'PA'),
  (40, 'Rhode Island', 'RI'),
  (41, 'South Carolina', 'SC'),
  (42, 'South Dakota', 'SD'),
  (43, 'Tennessee', 'TN'),
  (44, 'Texas', 'TX'),
  (45, 'Utah', 'UT'),
  (46, 'Vermont', 'VT'),
  (47, 'Virginia', 'VA'),
  (48, 'Washington', 'WA'),
  (49, 'West Virginia', 'WV'),
  (50, 'Wisconsin', 'WI'),
  (51, 'Wyoming', 'WY');";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql  = "CREATE TABLE fb_countries (
  iso CHAR(2) NOT NULL PRIMARY KEY,
  name VARCHAR(80) NOT NULL,
  printable_name VARCHAR(80) NOT NULL,
  iso3 CHAR(3),
  numcode SMALLINT
);";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql  = "INSERT INTO fb_countries VALUES
('AF','AFGHANISTAN','Afghanistan','AFG','004')
,('AL','ALBANIA','Albania','ALB','008')
,('DZ','ALGERIA','Algeria','DZA','012')
,('AS','AMERICAN SAMOA','American Samoa','ASM','016')
,('AD','ANDORRA','Andorra','AND','020')
,('AO','ANGOLA','Angola','AGO','024')
,('AI','ANGUILLA','Anguilla','AIA','660')
,('AQ','ANTARCTICA','Antarctica',NULL,NULL)
,('AG','ANTIGUA AND BARBUDA','Antigua and Barbuda','ATG','028')
,('AR','ARGENTINA','Argentina','ARG','032')
,('AM','ARMENIA','Armenia','ARM','051')
,('AW','ARUBA','Aruba','ABW','533')
,('AU','AUSTRALIA','Australia','AUS','036')
,('AT','AUSTRIA','Austria','AUT','040')
,('AZ','AZERBAIJAN','Azerbaijan','AZE','031')
,('BS','BAHAMAS','Bahamas','BHS','044')
,('BH','BAHRAIN','Bahrain','BHR','048')
,('BD','BANGLADESH','Bangladesh','BGD','050')
,('BB','BARBADOS','Barbados','BRB','052')
,('BY','BELARUS','Belarus','BLR','112')
,('BE','BELGIUM','Belgium','BEL','056')
,('BZ','BELIZE','Belize','BLZ','084')
,('BJ','BENIN','Benin','BEN','204')
,('BM','BERMUDA','Bermuda','BMU','060')
,('BT','BHUTAN','Bhutan','BTN','064')
,('BO','BOLIVIA','Bolivia','BOL','068')
,('BA','BOSNIA AND HERZEGOVINA','Bosnia and Herzegovina','BIH','070')
,('BW','BOTSWANA','Botswana','BWA','072')
,('BV','BOUVET ISLAND','Bouvet Island',NULL,NULL)
,('BR','BRAZIL','Brazil','BRA','076')
,('IO','BRITISH INDIAN OCEAN TERRITORY','British Indian Ocean Territory',NULL,NULL)
,('BN','BRUNEI DARUSSALAM','Brunei Darussalam','BRN','096')
,('BG','BULGARIA','Bulgaria','BGR','100')
,('BF','BURKINA FASO','Burkina Faso','BFA','854')
,('BI','BURUNDI','Burundi','BDI','108')
,('KH','CAMBODIA','Cambodia','KHM','116')
,('CM','CAMEROON','Cameroon','CMR','120')
,('CA','CANADA','Canada','CAN','124')
,('CV','CAPE VERDE','Cape Verde','CPV','132')
,('KY','CAYMAN ISLANDS','Cayman Islands','CYM','136')
,('CF','CENTRAL AFRICAN REPUBLIC','Central African Republic','CAF','140')
,('TD','CHAD','Chad','TCD','148')
,('CL','CHILE','Chile','CHL','152')
,('CN','CHINA','China','CHN','156')
,('CX','CHRISTMAS ISLAND','Christmas Island',NULL,NULL)
,('CC','COCOS (KEELING) ISLANDS','Cocos (Keeling) Islands',NULL,NULL)
,('CO','COLOMBIA','Colombia','COL','170')
,('KM','COMOROS','Comoros','COM','174')
,('CG','CONGO','Congo','COG','178')
,('CD','CONGO, THE DEMOCRATIC REPUBLIC OF THE','Congo, the Democratic Republic of the','COD','180')
,('CK','COOK ISLANDS','Cook Islands','COK','184')
,('CR','COSTA RICA','Costa Rica','CRI','188')
,('CI','COTE D\'IVOIRE','Cote D\'Ivoire','CIV','384')
,('HR','CROATIA','Croatia','HRV','191')
,('CU','CUBA','Cuba','CUB','192')
,('CY','CYPRUS','Cyprus','CYP','196')
,('CZ','CZECH REPUBLIC','Czech Republic','CZE','203')
,('DK','DENMARK','Denmark','DNK','208')
,('DJ','DJIBOUTI','Djibouti','DJI','262')
,('DM','DOMINICA','Dominica','DMA','212')
,('DO','DOMINICAN REPUBLIC','Dominican Republic','DOM','214')
,('EC','ECUADOR','Ecuador','ECU','218')
,('EG','EGYPT','Egypt','EGY','818')
,('SV','EL SALVADOR','El Salvador','SLV','222')
,('GQ','EQUATORIAL GUINEA','Equatorial Guinea','GNQ','226')
,('ER','ERITREA','Eritrea','ERI','232')
,('EE','ESTONIA','Estonia','EST','233')
,('ET','ETHIOPIA','Ethiopia','ETH','231')
,('FK','FALKLAND ISLANDS (MALVINAS)','Falkland Islands (Malvinas)','FLK','238')
,('FO','FAROE ISLANDS','Faroe Islands','FRO','234')
,('FJ','FIJI','Fiji','FJI','242')
,('FI','FINLAND','Finland','FIN','246')
,('FR','FRANCE','France','FRA','250')
,('GF','FRENCH GUIANA','French Guiana','GUF','254')
,('PF','FRENCH POLYNESIA','French Polynesia','PYF','258')
,('TF','FRENCH SOUTHERN TERRITORIES','French Southern Territories',NULL,NULL)
,('GA','GABON','Gabon','GAB','266')
,('GM','GAMBIA','Gambia','GMB','270')
,('GE','GEORGIA','Georgia','GEO','268')
,('DE','GERMANY','Germany','DEU','276')
,('GH','GHANA','Ghana','GHA','288')
,('GI','GIBRALTAR','Gibraltar','GIB','292')
,('GR','GREECE','Greece','GRC','300')
,('GL','GREENLAND','Greenland','GRL','304')
,('GD','GRENADA','Grenada','GRD','308')
,('GP','GUADELOUPE','Guadeloupe','GLP','312')
,('GU','GUAM','Guam','GUM','316')
,('GT','GUATEMALA','Guatemala','GTM','320')
,('GN','GUINEA','Guinea','GIN','324')
,('GW','GUINEA-BISSAU','Guinea-Bissau','GNB','624')
,('GY','GUYANA','Guyana','GUY','328')
,('HT','HAITI','Haiti','HTI','332')
,('HM','HEARD ISLAND AND MCDONALD ISLANDS','Heard Island and Mcdonald Islands',NULL,NULL)
,('VA','HOLY SEE (VATICAN CITY STATE)','Holy See (Vatican City State)','VAT','336')
,('HN','HONDURAS','Honduras','HND','340')
,('HK','HONG KONG','Hong Kong','HKG','344')
,('HU','HUNGARY','Hungary','HUN','348')
,('IS','ICELAND','Iceland','ISL','352')
,('IN','INDIA','India','IND','356')
,('ID','INDONESIA','Indonesia','IDN','360')
,('IR','IRAN, ISLAMIC REPUBLIC OF','Iran, Islamic Republic of','IRN','364')
,('IQ','IRAQ','Iraq','IRQ','368')
,('IE','IRELAND','Ireland','IRL','372')
,('IL','ISRAEL','Israel','ISR','376')
,('IT','ITALY','Italy','ITA','380')
,('JM','JAMAICA','Jamaica','JAM','388')
,('JP','JAPAN','Japan','JPN','392')
,('JO','JORDAN','Jordan','JOR','400')
,('KZ','KAZAKHSTAN','Kazakhstan','KAZ','398')
,('KE','KENYA','Kenya','KEN','404')
,('KI','KIRIBATI','Kiribati','KIR','296')
,('KP','KOREA, DEMOCRATIC PEOPLE\'S REPUBLIC OF','Korea, Democratic People\'s Republic of','PRK','408')
,('KR','KOREA, REPUBLIC OF','Korea, Republic of','KOR','410')
,('KW','KUWAIT','Kuwait','KWT','414')
,('KG','KYRGYZSTAN','Kyrgyzstan','KGZ','417')
,('LA','LAO PEOPLE\'S DEMOCRATIC REPUBLIC','Lao People\'s Democratic Republic','LAO','418')
,('LV','LATVIA','Latvia','LVA','428')
,('LB','LEBANON','Lebanon','LBN','422')
,('LS','LESOTHO','Lesotho','LSO','426')
,('LR','LIBERIA','Liberia','LBR','430')
,('LY','LIBYAN ARAB JAMAHIRIYA','Libyan Arab Jamahiriya','LBY','434')
,('LI','LIECHTENSTEIN','Liechtenstein','LIE','438')
,('LT','LITHUANIA','Lithuania','LTU','440')
,('LU','LUXEMBOURG','Luxembourg','LUX','442')
,('MO','MACAO','Macao','MAC','446')
,('MK','MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF','Macedonia, the Former Yugoslav Republic of','MKD','807')
,('MG','MADAGASCAR','Madagascar','MDG','450')
,('MW','MALAWI','Malawi','MWI','454')
,('MY','MALAYSIA','Malaysia','MYS','458')
,('MV','MALDIVES','Maldives','MDV','462')
,('ML','MALI','Mali','MLI','466')
,('MT','MALTA','Malta','MLT','470')
,('MH','MARSHALL ISLANDS','Marshall Islands','MHL','584')
,('MQ','MARTINIQUE','Martinique','MTQ','474')
,('MR','MAURITANIA','Mauritania','MRT','478')
,('MU','MAURITIUS','Mauritius','MUS','480')
,('YT','MAYOTTE','Mayotte',NULL,NULL)
,('MX','MEXICO','Mexico','MEX','484')
,('FM','MICRONESIA, FEDERATED STATES OF','Micronesia, Federated States of','FSM','583')
,('MD','MOLDOVA, REPUBLIC OF','Moldova, Republic of','MDA','498')
,('MC','MONACO','Monaco','MCO','492')
,('MN','MONGOLIA','Mongolia','MNG','496')
,('MS','MONTSERRAT','Montserrat','MSR','500')
,('MA','MOROCCO','Morocco','MAR','504')
,('MZ','MOZAMBIQUE','Mozambique','MOZ','508')
,('MM','MYANMAR','Myanmar','MMR','104')
,('NA','NAMIBIA','Namibia','NAM','516')
,('NR','NAURU','Nauru','NRU','520')
,('NP','NEPAL','Nepal','NPL','524')
,('NL','NETHERLANDS','Netherlands','NLD','528')
,('AN','NETHERLANDS ANTILLES','Netherlands Antilles','ANT','530')
,('NC','NEW CALEDONIA','New Caledonia','NCL','540')
,('NZ','NEW ZEALAND','New Zealand','NZL','554')
,('NI','NICARAGUA','Nicaragua','NIC','558')
,('NE','NIGER','Niger','NER','562')
,('NG','NIGERIA','Nigeria','NGA','566')
,('NU','NIUE','Niue','NIU','570')
,('NF','NORFOLK ISLAND','Norfolk Island','NFK','574')
,('MP','NORTHERN MARIANA ISLANDS','Northern Mariana Islands','MNP','580')
,('NO','NORWAY','Norway','NOR','578')
,('OM','OMAN','Oman','OMN','512')
,('PK','PAKISTAN','Pakistan','PAK','586')
,('PW','PALAU','Palau','PLW','585')
,('PS','PALESTINIAN TERRITORY, OCCUPIED','Palestinian Territory, Occupied',NULL,NULL)
,('PA','PANAMA','Panama','PAN','591')
,('PG','PAPUA NEW GUINEA','Papua New Guinea','PNG','598')
,('PY','PARAGUAY','Paraguay','PRY','600')
,('PE','PERU','Peru','PER','604')
,('PH','PHILIPPINES','Philippines','PHL','608')
,('PN','PITCAIRN','Pitcairn','PCN','612')
,('PL','POLAND','Poland','POL','616')
,('PT','PORTUGAL','Portugal','PRT','620')
,('PR','PUERTO RICO','Puerto Rico','PRI','630')
,('QA','QATAR','Qatar','QAT','634')
,('RE','REUNION','Reunion','REU','638')
,('RO','ROMANIA','Romania','ROM','642')
,('RU','RUSSIAN FEDERATION','Russian Federation','RUS','643')
,('RW','RWANDA','Rwanda','RWA','646')
,('SH','SAINT HELENA','Saint Helena','SHN','654')
,('KN','SAINT KITTS AND NEVIS','Saint Kitts and Nevis','KNA','659')
,('LC','SAINT LUCIA','Saint Lucia','LCA','662')
,('PM','SAINT PIERRE AND MIQUELON','Saint Pierre and Miquelon','SPM','666')
,('VC','SAINT VINCENT AND THE GRENADINES','Saint Vincent and the Grenadines','VCT','670')
,('WS','SAMOA','Samoa','WSM','882')
,('SM','SAN MARINO','San Marino','SMR','674')
,('ST','SAO TOME AND PRINCIPE','Sao Tome and Principe','STP','678')
,('SA','SAUDI ARABIA','Saudi Arabia','SAU','682')
,('SN','SENEGAL','Senegal','SEN','686')
,('CS','SERBIA AND MONTENEGRO','Serbia and Montenegro',NULL,NULL)
,('SC','SEYCHELLES','Seychelles','SYC','690')
,('SL','SIERRA LEONE','Sierra Leone','SLE','694')
,('SG','SINGAPORE','Singapore','SGP','702')
,('SK','SLOVAKIA','Slovakia','SVK','703')
,('SI','SLOVENIA','Slovenia','SVN','705')
,('SB','SOLOMON ISLANDS','Solomon Islands','SLB','090')
,('SO','SOMALIA','Somalia','SOM','706')
,('ZA','SOUTH AFRICA','South Africa','ZAF','710')
,('GS','SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS','South Georgia and the South Sandwich Islands',NULL,NULL)
,('ES','SPAIN','Spain','ESP','724')
,('LK','SRI LANKA','Sri Lanka','LKA','144')
,('SD','SUDAN','Sudan','SDN','736')
,('SR','SURINAME','Suriname','SUR','740')
,('SJ','SVALBARD AND JAN MAYEN','Svalbard and Jan Mayen','SJM','744')
,('SZ','SWAZILAND','Swaziland','SWZ','748')
,('SE','SWEDEN','Sweden','SWE','752')
,('CH','SWITZERLAND','Switzerland','CHE','756')
,('SY','SYRIAN ARAB REPUBLIC','Syrian Arab Republic','SYR','760')
,('TW','TAIWAN, PROVINCE OF CHINA','Taiwan, Province of China','TWN','158')
,('TJ','TAJIKISTAN','Tajikistan','TJK','762')
,('TZ','TANZANIA, UNITED REPUBLIC OF','Tanzania, United Republic of','TZA','834')
,('TH','THAILAND','Thailand','THA','764')
,('TL','TIMOR-LESTE','Timor-Leste',NULL,NULL)
,('TG','TOGO','Togo','TGO','768')
,('TK','TOKELAU','Tokelau','TKL','772')
,('TO','TONGA','Tonga','TON','776')
,('TT','TRINIDAD AND TOBAGO','Trinidad and Tobago','TTO','780')
,('TN','TUNISIA','Tunisia','TUN','788')
,('TR','TURKEY','Turkey','TUR','792')
,('TM','TURKMENISTAN','Turkmenistan','TKM','795')
,('TC','TURKS AND CAICOS ISLANDS','Turks and Caicos Islands','TCA','796')
,('TV','TUVALU','Tuvalu','TUV','798')
,('UG','UGANDA','Uganda','UGA','800')
,('UA','UKRAINE','Ukraine','UKR','804')
,('AE','UNITED ARAB EMIRATES','United Arab Emirates','ARE','784')
,('GB','UNITED KINGDOM','United Kingdom','GBR','826')
,('US','UNITED STATES','United States','USA','840')
,('UM','UNITED STATES MINOR OUTLYING ISLANDS','United States Minor Outlying Islands',NULL,NULL)
,('UY','URUGUAY','Uruguay','URY','858')
,('UZ','UZBEKISTAN','Uzbekistan','UZB','860')
,('VU','VANUATU','Vanuatu','VUT','548')
,('VE','VENEZUELA','Venezuela','VEN','862')
,('VN','VIET NAM','Viet Nam','VNM','704')
,('VG','VIRGIN ISLANDS, BRITISH','Virgin Islands, British','VGB','092')
,('VI','VIRGIN ISLANDS, U.S.','Virgin Islands, U.s.','VIR','850')
,('WF','WALLIS AND FUTUNA','Wallis and Futuna','WLF','876')
,('EH','WESTERN SAHARA','Western Sahara','ESH','732')
,('YE','YEMEN','Yemen','YEM','887')
,('ZM','ZAMBIA','Zambia','ZMB','894')
,('ZW','ZIMBABWE','Zimbabwe','ZWE','716');";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$installed_error = 1;
}
$sql = "DROP PROCEDURE IF EXISTS `fb_add_user`;
CREATE DEFINER=CURRENT_USER PROCEDURE `fb_add_user`(IN in_user_name VARCHAR(20), IN in_user_email VARCHAR(50), IN in_user_pass VARCHAR(50), IN in_pwd VARCHAR(20), IN in_user_privilege INT)
BEGIN

SET @message = '';

SELECT COUNT(user_name) FROM fb_admin WHERE user_name = in_user_name INTO @n_ct;
SELECT COUNT(user_email) FROM fb_admin WHERE user_email = in_user_email INTO @e_ct;

IF @n_ct <> 0 AND @e_ct <> 0 THEN
      SELECT 'Notice: User Name and Email already exist.' INTO @message;
      ELSEIF @n_ct <> 0 THEN
      SELECT 'Notice: User Name already exists.' INTO @message;
      ELSEIF @e_ct <> 0 THEN
      SELECT 'Notice: User Email already exists.' INTO @message;
    END IF;

IF @message = '' THEN
 INSERT INTO fb_admin (user_name, user_pass, pwd, user_email, user_privilege)
    VALUES (in_user_name, in_user_pass, in_pwd, in_user_email, in_user_privilege);
    SELECT 'User Added.' INTO @message;
    SELECT @message AS e_message;
ELSE
  SELECT @message AS e_message;
END IF;
END;



DROP PROCEDURE IF EXISTS `fb_admin_get_authentication`;
CREATE DEFINER=CURRENT_USER PROCEDURE `fb_admin_get_authentication`(IN in_user_name VARCHAR(20), IN in_user_pass VARCHAR(50))
BEGIN

SELECT user_name, user_id, user_email, user_privilege, fb_auth.auth FROM fb_admin, fb_auth
        WHERE user_name = in_user_name AND user_pass = in_user_pass;
END;


DROP PROCEDURE IF EXISTS `fb_admin_get_password_reminder`;
CREATE DEFINER=CURRENT_USER PROCEDURE `fb_admin_get_password_reminder`(IN in_user_name VARCHAR(20), IN in_user_email VARCHAR(50))
BEGIN

SELECT user_name, user_email, pwd FROM fb_admin
      WHERE user_name = in_user_name AND user_email = in_user_email;

END;


DROP PROCEDURE IF EXISTS fb_insert_entry;
CREATE DEFINER=CURRENT_USER PROCEDURE `fb_insert_entry`(IN in_entry_key VARCHAR(50), IN in_job_id INT, IN in_name VARCHAR(255), IN in_label VARCHAR(255), IN in_value TEXT, IN in_ts INT, IN in_jobname VARCHAR(50), IN in_remote_ip VARCHAR(50))
BEGIN

-- create job row if not exists
DECLARE ct INT;

SELECT COUNT(id) INTO ct FROM fb_jobs WHERE id = in_job_id;

IF ct = 0 THEN
  INSERT INTO fb_jobs (id, job_name) VALUES (in_job_id, in_jobname);
END IF;

INSERT INTO fb_job_entries(entry_key, job_id, ts, name, label, entry_value, remote_ip)
  VALUES (
    in_entry_key,
    in_job_id,
    in_ts,
    in_name,
    in_label,
    in_value,
    in_remote_ip
  );

END;


DROP PROCEDURE IF EXISTS `fb_insert_file`;
CREATE DEFINER=CURRENT_USER PROCEDURE `fb_insert_file`(IN in_entry_key VARCHAR(50), IN in_job_id INT, IN in_name VARCHAR(255), IN in_value LONGBLOB, IN in_file_mime VARCHAR(50), IN in_ts INT, IN in_jobname VARCHAR(50), IN in_field_name VARCHAR(255), IN in_label VARCHAR(255))
BEGIN

-- create job row if not exists
DECLARE ct INT;
DECLARE last_id INT;
DECLARE qs VARCHAR(255);

SELECT COUNT(id) INTO ct FROM fb_jobs WHERE id = in_job_id;

IF ct = 0 THEN
  INSERT INTO fb_jobs (id, job_name) VALUES (in_job_id, in_jobname);
END IF;

INSERT INTO fb_job_entries(job_id, entry_key) VALUES (in_job_id, in_entry_key);
SET last_id = LAST_INSERT_ID();

SET qs = CONCAT('lib/get_file.php?id=', last_id);

UPDATE fb_job_entries
              SET
                ts = in_ts,
                name = in_field_name,
                label = in_label,
                entry_value = qs,
                file_data = in_value,
                file_mime = in_file_mime,
                file_name = in_name,
                entry_type = 'File'
              WHERE id = last_id;

END;


DROP PROCEDURE IF EXISTS `fb_insert_image`;
CREATE DEFINER=CURRENT_USER PROCEDURE `fb_insert_image`(IN in_entry_key VARCHAR(50), IN in_job_id INT, IN in_name VARCHAR(255), IN in_value LONGBLOB, IN in_file_mime VARCHAR(50), IN in_ts INT, IN in_jobname VARCHAR(50), IN in_field_name VARCHAR(255), IN in_label VARCHAR(255))
BEGIN

-- create job row if not exists
DECLARE ct INT;
DECLARE last_id INT;
DECLARE qs VARCHAR(255);

SELECT COUNT(id) INTO ct FROM fb_jobs WHERE id = in_job_id;

IF ct = 0 THEN
  INSERT INTO fb_jobs (id, job_name) VALUES (in_job_id, in_jobname);
END IF;

INSERT INTO fb_job_entries(job_id, entry_key) VALUES (in_job_id, in_entry_key);
SET last_id = LAST_INSERT_ID();

SET qs = CONCAT('lib/get_image.php?id=', last_id);

UPDATE fb_job_entries
              SET
                ts = in_ts,
                name = in_field_name,
                label = in_label,
                entry_value = qs,
                file_data = in_value,
                file_mime = in_file_mime,
                file_name = in_name,
                entry_type = 'Image'
              WHERE id = last_id;

END;


DROP PROCEDURE IF EXISTS `fb_get_file`;
CREATE DEFINER=CURRENT_USER PROCEDURE `fb_get_file`(IN in_id INT)
BEGIN

SELECT file_data, file_mime, file_name FROM fb_job_entries WHERE id = in_id;

END;


DROP PROCEDURE IF EXISTS `fb_get_image`;
CREATE DEFINER=CURRENT_USER PROCEDURE `fb_get_image`(IN in_id INT)
BEGIN

SELECT file_data, file_mime, file_name FROM fb_job_entries WHERE id = in_id;
END;


DROP PROCEDURE IF EXISTS `fb_update_login`;
CREATE DEFINER=CURRENT_USER PROCEDURE `fb_update_login`(IN in_user_id INT,
                                IN in_user_name VARCHAR(20),
                                IN in_user_email VARCHAR(50),
                                IN in_user_pass VARCHAR(50),
                                IN in_pwd VARCHAR(20))
BEGIN

SET @message = '';

SELECT COUNT(user_name) FROM fb_admin WHERE user_name = in_user_name INTO @n_ct;
SELECT COUNT(user_email) FROM fb_admin WHERE user_email = in_user_email INTO @e_ct;

IF in_user_pass = 'null'
   THEN
      IF @n_ct = 0
         THEN
            UPDATE fb_admin
            SET user_name = in_user_name
            WHERE user_id = in_user_id;
         END IF;
      IF @e_ct = 0
         THEN
            UPDATE fb_admin
            SET user_email = in_user_email
            WHERE user_id = in_user_id;
         END IF;

      IF @n_ct <> 0 AND @e_ct <> 0 THEN
      SELECT 'Notice: User name and email already exist and were not changed.' INTO @message;
      ELSEIF @n_ct <> 0 THEN
      SELECT 'Notice: User name already exists and was not changed.' INTO @message;
      ELSEIF @e_ct <> 0 THEN
      SELECT 'Notice: User email already exists and was not changed.' INTO @message;
    END IF;
ELSE
      UPDATE fb_admin
      SET user_pass = in_user_pass,
         pwd = in_pwd
      WHERE user_id = in_user_id;
      SELECT 'Your password has been changed.' INTO @message;
  END IF;

SELECT @message AS e_message;

END;
";
if($db_procedures == 1){
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port,true);
if($val != ''){
$error = 1;
$e_message .= "<br/>Error 1081: Stored Procedure Creation Error: \n";
}
sleep ( 2 );
}
if($db_procedures == 1){
$sql = "call fb_get_file(1);";
$val = execute_mysql_sql($db_vendor,$db_mysql_socket,$db_hostname,$db_catalog,$db_username,$db_password,$sql,$db_mysql_port);
if($val != ''){
$error = 1;
$e_message .= "<br/><br/>ERROR 802: The installer could not create and/or properly execute the MySQL stored procedures! Please make sure the Database user {$db_username} has: CREATE ROUTINE ALTER ROUTINE and EXECUTE privileges. You may also want to make sure the FormBoss database tables were successfully created. <br/>Please resolve this error and click the Install button again.";
}
}
?>


ZeroBytes

_________________
Decoded by ASD @ Lost-codes.co.uk
View user's profile Send private message Visit poster's website
Need help to decode itself
  www.waraxe.us Forum Index -> PHP script decode requests
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
All times are GMT  
Page 1 of 1  

  
  
 Post new topic  Reply to topic  




Powered by phpBB © 2001-2008 phpBB Group






Space Raider game for Android, free download - Space Raider gameplay video - Zone Raider mobile games
All logos and trademarks in this site are property of their respective owner. The comments and posts are property of their posters, all the rest (c) 2004-2020 Janek Vind "waraxe"
Page Generation: 0.156 Seconds