[Mono-list] Context object inside Web service constructor.

Mariano Alarcon marianoa@itcsoluciones.com
Tue, 17 Aug 2004 12:37:11 -0400


This is a multi-part message in MIME format.
--------------040208090304060105090007
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

Here is a small web service that behaves strangelly:
...
[WebService]
public class ContextInsideConstructor : System.Web.Services.WebService {
     public ContextInsideConstructor() {
          //CODEGEN: This call is required by the ASP.NET Web Services
Designer
          InitializeComponent();

          // This throws a Null Reference Exception on mono
          string fails1 = Context.Request.PhysicalApplicationPath;
          string fails2 = Context.Request.Url.AbsoluteUri;
     }

     [WebMethod]
     public string ReturnPhisicalPath() {
         // This works fine
         return Context.Request.PhysicalApplicationPath;
     }

     [WebMethod]
     public string ReturnAbsoluteUri() {
         // This works fine too
         return Context.Request.Url.AbsoluteUri;
     }
...

This web service was created with VS.NET 2003 and it works fine on
Windows with the .NET 1.1 from ms. However, mono 1.0 running on linux
gives a NullReferenceException when trying to call either webmethod.
Commenting the lines in the constructor of the WS solves the problem. So
I am guessing the Context object is not properly initialized by the time
mod_mono or xsp hit the constructor.

This is as far as I am willing to go. Hope it helps.

-- 
Mariano Alarcón


--------------040208090304060105090007
Content-Type: application/octet-stream;
 name="ContextInsideConstructor.tgz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="ContextInsideConstructor.tgz"

H4sIAIymG0EAA+w9C3AUV3I9u2KRhNEhgW0w/gy/WMhiWP35W9JKgIwFghX4J8fM7o60Y1Y7
65lZhPwVxmef75wUF+MEl40N2JXKJU7MVZw6khjHqaNSrosvvsvFV1d1d1Xc5Sr21bniVO6u
kkolJt3vvdmd3R2tAMsYzDRMz7z3+vXr7vedtz1PESNta/vsvrSlJ7SIkbZsMxu3DbPXNA1z
JUwLhMOt4Y6ONryHwx3thXcB0BRuCrd3NDW3tDZDuKmtva0Z5LbpKb48ZC1bNWUZkradKUc3
VfplCpGy9d9lWdpoLDXelx42lLh1gWVg1Ybb21snq/+2lpY2Xv9N7c1ICuHmcFt7O8jhadV0
ErjC6z9r6ekROTpu2dqoskMbTmlxWzfSa2dXF6Zk07Y+qikRYzSjpzQzqpl79bhmId3s6pUr
6ZI3aWnNVFMyNRZzVCU2shozsras4oNoSbJuyXFsc6aRSmkJ2U6aRnYkiXdNHsYoY4wKZews
zZaNYVm1bVOPZW3NUuRIUk2PaERsafkEea+aymqWbBvyqJHQh8cZNz0vBWOHAhhxXbWx0DHd
TrplUrgK9zjhNbLT7gd1O6XVL168/F7P5B7Nipt6hsqYnAg71bA+kjXVqchGM2p6fHKCAdNI
YNcsxyEzbuojyTIkg6aa0EZVc08ZLtmUnTW50lVVrurdpZkWVanLsFhlZkHlYs1aumVbVHGF
VTpsZE1RUWtyLBn0q/cjF8HdFa2n89FyPr47q6cS8tbsaEwz87E7tL26k5/F3mVk5TiKZmW0
ODUJNZViEom2gqzHBUVCG1ZRZ5bqsEGlEgUlWVyC2LjMuwUR39xwM2ouW0ljLC3HNFR0DZnL
w6ZCi/rFTUpYaWCWzwnal0ZhEppJzdfSR9Ikl5m3KEk5imNUXhF5jzZOxFlLU1DgYZ6VBGL8
+vW4aVjGsC0rW3sH5Y2mOqqNGeYeOWHEs6Na2s7X3KhhFvQT2XBVJcmCmio5QXdarOe5OiRX
mkoXPVoeS+rxJBMQuzkKmGDlOKzkHK+tBmZf49RqfcNyuW9YThtOTq6rriUaeYmusSNt2Iyf
llBcubdo41tRT9kkc7CRQJgpqdpyUiVJNWq5ONazYUdPM8YRczyDtGIwy7cmGfvaXp0qpT4S
HVhOdmG1MqrGk3oazY7lbcRhsKC8YYrgBiBzqFiaiyOTRylUmERwOFGDE2GmiWinKtZQzMDh
qsgkLs75PpYxDRySWfs04vGsyXuaIKtvcpfJyqDWH6NOmk3nTRIdaORmc9Wi4ubTXMInYWi8
YrR92PndqjDVWDJL4rITYxdDAlG4kwOLddeVaN4oGuPtlohZ0tWD4qaGQzxaW7BqzHXzrGi+
VlrR9mlyfRQbLBqKFFguZ209pdvjbj3lO5JabvhwunyOKwVSRlx0m8KqxAEhiwNHzN2gsKWk
kHiv5vTVxVhZ9+NcK+P8mMEpMqGbGq27xhcr8qAH80JyN+dcTjJbQsto6QT2cmqzY0kNs/KR
jhoSDQOkCZ//WBEpGgnHtJjDv8ACGzGNE4lUq9FDlmIBhrGHJLDPujitGxA5ehzSDUNG7P6h
dQVz4waFlajtU0czZGN9mPe6fKtwsWT2yfdkR6ScLLzix1hNOEMnETpDssPU3UVzCwocMDxG
cZGlfrGiDA3RNTpOfdpK72EjeqHdXDa9UKst27ytv3ega3DzsqFd0Tu0WARHH21oXT8fhFjL
3TB0rqZ19ZcebIrjcpQPylQ6zeCJvWo6jhIYbDUjr8DlF+8vk80nLkHPbWaxk7o1+UqLCUUy
1Q+rKUubZHGSq4LJVi9iSBIEn/fi+jKA8u9/MT09DXsA5/H+39Ta2oLvi+2tzS3++//FgKnr
fzIKJZFKnVsZ9P7f0TZZ/Tc1ufd/Wtn7f2tTs//+f1Gg/26AKrxX4HX2LMBJEd95Dnkn8Kq5
6W9q4I2q7y46Kd3+3UWDOMbTRDeCswStumhRiCtMM0uLb7lnW5Te0DVl9uzqpYLHQC/A7VIQ
4LmFXQ7fM1CzaJYUAqgWghHI4uoU0tFzIJ/s3JlQAf4YZHgO+5+/524M5iOfbYLl9UEPJXcD
XHUOtiiGOci30hVOYHizK6xQn8L7VUSEaUzXQCEPjN6tmJYZByEbysgULRIIozsVXGAacZG0
W/CaU0LXXSzn2WVz5E5XuFvm97vlfNxWmevjDfdFcLTYp/XjCw+MWnGc+TU2NHTmcmwW4hxc
BPAwVqsk4il8MWFuuA7WAiu/NjDvEbxVBOoRVwcMtGooYKCQ1UaQEIarq90RMwhRk5zVsLGY
sGFuuAquEYV4ZmoINfxBcDWRBB6iYlfPyj0aM0mAYH0lkaH9o7d1S8JCVJd7m5QmpbWluZnF
zAAagzJYwpJHsZ/g/X/pGd9lcCnHtmd/MoM3kSU7o3AGn5+h5+6UEcN7KsSbxJJNO/t6XHah
0u64OsDGAafNUNw84PUmsZL5/Wq8asQzXbzfzZa4xCFMl7ApN8HvIO5DXANPwCNQB99AXAOn
4H3EUel9jDkmnZTq4DsMf8BwKED4JoZXMRxlOM3wUwwfZ/hvEYfgXwISlvhhgJddIXG56d8c
+BU0SDNEaLPUBR/JlPokdneKaWEt70n4XWkRhnpF6AEWGmGh/XBAIkqdhU7DX8E6ofMfSVVA
XKpgPVwLtbATrocFoMIixF8BBe8H8VqOOSS0A+XrQvrb0BqEtzN8F8MqwzrDDzA8zvB+xOvg
afb8dYafZyUeY1iBLThiKRBl+B6G4wzvYdhi+CGGDzD8NYafZfgFxJ3wZ1grEXgFZd/Nnnuh
YoLX53OhD+/hLeBXooa/MhdE25NyLcOJq8EaLo5bhjVdHNcCR53GJjaU8X1GcTaRAQPiGRRa
WriIYDPOu2IJAiOafZ/zTPE7tAeymsXj3c8DyXFLx/fWrkwmpfP36AHVTgq2sNPUGdlOM8Xu
XTHLSOF7H8WzESylx6CvR7cyhqXGUhrwRw36VdNKqqnu8V20O0M7tkYa33sccXMR/TjJpSZd
WsE6TM+mtA2TUrDxs+zKDOJOWRb0Rfh2k2bCDs3OmukBnIVJfaYzj3Kr2JfWbV1N6Q+6NEgw
DXEQgYKt7y7nlRhKfiEAj03wPLnn5rdXMtv0Lk0Qm91eOcQmd2lSbnPbIxff1C5NyL12liaJ
d03PBHrHzCfkm29BXL9mJ41EPopDEPtw5Ylb73us9v3qNbmHChnqqgjNxvSaym89OLRrQeuZ
pymm1hWSpEAwVHdDxcxATQ2FamawPqnQSDVYU0ViWRk1rt1Aq9U1K1eOjY0puh2nuo9jBWiW
gu1mZYWYgAfe+seXx77/cPc3lR3fOrAguAV8uMJBYtP/fL6KLoinJhP2iCeg9d2dnThLutav
pwOtiHfhLHUf4l7YgU99OPdsxXAf4o181Q2nKj7+xFlNfHjPcyEn/63iTuuLomUx9DDqXTh/
mshHhxRoyDMNw2Cw9KUs1yCmqhhrYboKNtIZGCJ4DE5ULA0QjyjGm5iShhEvTowG30ehA2PC
0AoxsgHUY4IEA5jTgARkcfa1URoNw1auFJnJQXQRjBnFdRvJMo6aqxjig0GeppBXMQ0v73aM
GcGUFOOYQV4k+QgkwRZ0g7gCkZj8NpMmzajz3CJMNkrbh7iP2UbHUjWRYjFrcBkMfCJoZGU7
tunBy8J0KjlTYFMq/3qXvlQilWUV6OnwKbYWp0nADUizTeilC/mdPOkL1kPBtBSkXPrkbclb
CeUdZe1pD1g5ea4IkPl7RuCibLb4cKnBhe//MQpaqSpjerpsGeX9f1rz+79N7S2tRNfc1tHa
4e//XQzov/sg2yf7vPf/en87v3T/jxYjMo/7/RXg2v/D1256njPJ/p/Ywwiy6PL7f+tW5Pf/
TpbZ/7tzCc1v5wFy4f5fpey9/3dottBrDpTs18mu/b+Tzv6fyyYOdHrt/xFduISuZP/PBx98
8MEHH3zwwQcffPDBhysDMiv43fHRuApfzMNVeR+NHy3CV2ppksweMDccKPWx+BK5ONQzH4v6
OeQTUUuojvlYuCLmEprHfCwYH/I1CBKf4ky3QKhBlHWdB02OjyCcG3b9htDA890ogsHGudwP
o3GW8Me4hvtjXMv9MYh2nqBFfQJMn/lMH9Qq1FDK+2KHAzl3oIC1AAVjMja8ieF/+s7Hb1HV
vYTX8twPuJaRNeOalXvaoakJzWyUnV++rVJK/vGXExHV7Dx1o/OJznr6tqUtHA4r4UZZ/N66
Pq1lbVNNNcoD2VhKj2/RxgeNPVp6fayjQ22Lt7U3rW5p1cKrVrsb2EAXyX65y0/g7GlRfT2H
l70EL2ycO6I90ee3//Lsz++t6D81b+GPf73yeebeFVkz1CNcqS32pQNKapNjz9ComlJNtxd4
pCvat22gd6js5ixzBO/RYtmR8nRKJkHuQVP4HlWwbaW3g9z3SMbenKoo9D16prLQv+hFDB+C
vP8R8HFBYr5GVMz/SC38Nzb2myPbhyRbYccC7MiArZn5GgUh72vE2341OP5GndCIod+Dx5Hy
I/gh1MHN0nuIfya9J9VhAYTnBggrDG9ieDfDDzH8hwy/zvA7DH/AcEWQ5QouDIagO0il7Ao+
jjgdpLKOB9/D0t/C+Dr4MT7XwH8Ef+hoCHk/pC2QgBm50BEMVaEOIQz9FywUeECmHE/Of5Xp
dZiH4E+RpwRvitApFvoFC+2HgESUv2Gh03CNdBOG5EV5LgHoZKEnoEmiX94GRCgi0W+ju0Vo
O4ZCkBGh+zFUCRMitB9D1cJD7wk4hqGr4KgI/SWGauCECP0dhubA24vyktUx/b8fJPxBkOrs
3z+T5+XwKtwCTQyvRnwTdLHnPoa3M3wXwyrDOsMPMDzO8H6Gn0Ychq8DWa5K4FhQg+fhweD9
cAyeDNYg/uOgAd+Av8DnbzKav0a7EyVZv5bF/D3DCrTAlxGvZXgPfA3xLPY8l+GFDEcY3sJw
lOF7GI4jJv+sh5HCgnbmn/Uw2CjvfqiY4K3r2dBX7+W9KQGFflYS9gYoiXu8JK4O3vOIuzE3
jLHOiVZ+Wzwv59vrUzou5X4TmsrNa1LfqPJeT0V+YS7/LtiEY4yaEv5j5+QHJbzBvJ23XE5V
blcrD9cpxzks5znWuxeju0wcE13y3Re1VdOGKH2flwu507u1ET3tOLG5E3rTCa/orqydxHIo
qHlm4wYT5SGTYqZlXLpKPJym9Ikq40cl5tfzcMoq58g1uftXGZexSZzMpnBOK+vY5u0e16Or
I2nDwlqxgE28I+Q/WN5TbDodHMt5Nnp4pOW9/tzejhZ9QWgC76S8C5Tv77zrKaaz4JqCfFKv
xzwDgGV//u2j+3/6avdr73/53qU/e2Qe5FzlyIGuwEkuGKqbzVzjQnJAur6uljvG4XMgcL6O
cTLU9RPaTmgnc7MLhGqYv1xwpuNtF0Km7CGxAnLwqPP7pAdkVrhD5C/fk0qV+MsTnF2GPGq9
ufjgw2cNn87/b8j1+/lQ8Pz9/75677Mh5/5Z+v8BnKh48xz8/w7n/P/4P8f/b2o/t/I+f+fj
U9eJb0Pl/OaacM0YxqsJ14qrcOWpQDPi1ShrO0tPwOJp9Qnsxcss8qo7V//E8/G9SzG5p98X
0Ev+c/HB7GH1UN7nc6q62Mx4dGEOi+kcw9Lpi4/z5eODDz744IMPPvjggw8++HBBIPPf+g6u
/7wF8cEHH3zwwQcffPDBBx988MEHHz4r+LTnP2QSsU97/kOH1/kPbWH//IeLAfnjvSMrI7fc
IvdHN8odSjg8u/q6nigRBLj/xc14vSHyLJ2Umw+XG0z869nHzvpwxcKq+TBx5vMWwofPDcaq
mqRVNBC4zp+pgbNnAwAl59H48MWD/45tv/UfZv6g9mAU3t72SuDY6d4tz//y3/659uCtPDzr
yJN31w7/oPZUA9JW9p2ajA8d3HgDXvRdJR1lTgdczwR+BhKdK02/MdFRR/Q9F33fRU2LHJ3p
WyH6AIW+saTvPemM7GuBfw9G338txIu+8Tyvs5d8OGeYrvr34fIEr/Gf5gX3+E9hr7sPlz9M
V/8n13+aA2j8p09BaQ6gMZ888elvB1zI2O+M+zQH0NxS9Rnof6WDP/77QPB60d2HKwM++fiT
j+nrq29TIL5mSE9rdiYbGxobGzMNwx6K891fne3+xvO7vxo7YEKkKqo1uo/9fXAPDuWPqBDf
jqqWyhictwQjhflnCrXonNMIXgcgf5QNQQX4UAA0p57AawFaidaBztru13i9BvzbPrrIsM4c
Xzy3010S8SCe6/Fa+POw9H+Vx9KbRVy3uDt/CoPggAdtRNAeKKL1YfqB7E71nDizKfPbR09L
xd9aTgVEf7Hqn59lELVVW4PFsLS2/FkRwM5ZoWsNNLBvqt+V8vI5gO069IITV3peA65Jg7W/
wKR3JE7j0FZj+eIACaRxnpUI/Vl7dpiCRetXV3zB6RK0Fs6l0WkWblp+ZsYF6toudH0jUKpr
Jer6ohMnSnDqX/npoeNU/15HYPv1/8Wtf6o7ReQ5I+jmufLgeB96ysnDD1dhNqF8PwH+/uak
X6o28et/8vp36/k9TDghzuN68RLXs1vo+SfBUj1xTRM64lWnBWfscJ1Por6vBjntkUtc5w1C
58MVpTrj2Bt6yUtn1/FBpO9rqOuhCk730iWu721C30MzSvWdhfq+7KWv17lIoq5fRL0PzuB5
Xr7EdXfGrIlQqe649g4d9axrzoR0PTwj/7dWj17iujpjVnJmqa6zUddjxWMWnV4l6vQJ1DEx
k6cfu8T1dOp0sLJUzxrU8/gk/dfRNYV6DlRymuOXuK7OWNVTlWuzOaCDU19xdPU6Uk3oeyfq
2lnFf0t85RLXl07IoXUTrYVeF7LSFEw+Y4dEPOnwgkj/tBslEr55E0+ap18SfZzaBP1hnAZo
RfsDo6Hyjojx7piQYSEsg5WwGjbh838Cf7/nazgpt/ajKWadeMaKnKCuiWu9CdrHvxrvc1kd
wUQQSwpCHdJfh/cKxm8pOOskKdfGnTM+gZVP+fK0L5ahlYtoj5ShXVZE+1IZ2oYi2pfL0K4s
oj1ahra1iPZYGdrVRbTHy9BucNGSX+QrgjZ39i/k/fKwXieoz2C9TlRgLVK+3wD/LT4iaAbE
neqbzoy8HfhpkhN4HQZ+8uOPhBDz8dqM126JnwV9GK83JL6e/kiiE5HxHS4wrX2zR7VVNw/3
wXolffia4j4szps8l/57Hci1wn65c9eGVT1lNfE0ySutuXRM3xfI29MBjAqJs7DB60hKGuM6
MdEO8HwO7cW0o/v9b51oeGtdOkh8y8/z/W8VRq5xtVW//i+/+p8uOzaU2LECItGl3MU73OI8
hDlNoe3eEO9wC1y2w6jQtkLbuQ+zZLZ7GAs7EeT5tl1htnPWV+94vAvSQftJJ67M+or+ptxp
8S7o0F+O9nNs0ixs8j3xvnijyyYYFdIdmzhH9go7vIs2eHcG9zHQvwB2cK/jnL05aibPAJ/b
X4W8L/9acW0T11OiLZAdPv3PgZBbzTSI57WiXiSUdJsoZyl0sDQqF4ddtsbZDU67lnLzEU1E
g+K5QaxJ68SadJ5Yk16Ld1oH0RmWNDfh2DBRhTNcFeaYDUvw6sVrPYarc2uptVC49nWvpW4U
fG9i5awryLdN5FvgkQ/vE7R2W8bytebyLc31Ne91XhOTtzq3LtcFrdOW3evyDrHOW4V38p1B
fSdu4PpgmeH/b+9ZYhtJrqO0GGAlewAnQILYQIIy17uWDPGr34yGnB2K4swwkUSBpHbG2Vkk
TXaRak+zm+7qlkQ7A6yRQ64JkEOMIInj0wbINYCTk3NLEOeWQ3JLACO3BDGQQw455L2q6u7q
ZvMjjWbGk2XNUGR31Xv13qtXr96rTzcYkw+A1/d53b7/59eJc+4PgOA2fEz4/D58PoPP38Hn
X/ENEmAb8KUEW3Ju7O/lvOD35DxoZdl/aqf4nPrXMl+T378k89dl/q9KfH8hrwfy+0iWuyXz
/0rCb8vr/5DXX5bf35Pl/0V+Z+T3P8r8v5XX/ybx35Lf318K1yA4vRNXhB+ItrnqinFsAW0G
/LvR/HDD9ZLEtZSanmbRNysf13u/spL72X+lhB/yB7LOupTT91OL9r9Sesvaf/70aeLd8fXi
LymvvSUJ+VdPD24ARyR9Ok43xtFog9E+o21HG4tjzW+nUvwZsZcpfNcF2MmUmK/4LCXG0B/D
5ycpESvjOhH2o/9NYcPCmAQfAp+NJRErncDnGXzUydpfTq2LOf1bSFN+hzt6XfQt3uf3cX5z
OTbx6cOIPAmj41glYHCecDlhEtGHE/kC7hcljHjOsgjw/HLinsS/E+L/aSqOXywi+XA/VeF2
Q15wfWk5tvDkw4g8CQMD2gcS5kfL8bqiizg+vCgn4e+G8H/5ToIsIusC60o5Ca9hTCzgcc1g
eY4FBh+PKC/xdEKZifYdn6x/0+0/7YiPPzZMKbJIb3nKw0CYlnqD8+3LEwJGX3dEGalzPfS/
Q/uxlGA/lvyyhbCeB3wMTpgQUeoRZSRsMdTt31kOYdUJAR9O5Eu4zbDOH3E/YjpvooyE3cL7
AvYnPEYOg0a/vLgvy28LeeJ4jfGEOg/kJ8zDmOHLE/KCmD0hD+OAX5uQ93tKfUuxvD9W7sXz
cBzD+AH3/8za/4dtqe7/U893Od1czzApy710wJhj18cV2wl6SxKKjP67ZPoXJAMpyRDmY7m0
ZMaSDH2Okn8GFNv2C6kf3Pli6nffxXga/ZjPlsTawB8p5THOFPr7nz8OcYS41GuRVlP/dEv4
Sbr0vf95kP+Cn3u9V8WkdrdqB8Xq1v4c9a+kHq9A34Zf/yPr/3T0lTnrly+Vuvtwa3N3/2EN
ymf+Jvszvx+p8+R+etv6/6S8P5mS96dT8v5sSt4PpuT9+ZS8H07Jw3WwLybkLcO/20virq8X
uO76rnT81bNsyzwaCGdkKqkbmPt62QXeVLg3fynOXHh8+0vK79R10h9mC0vWf/9KBft//J2U
fw33coeG9bxu9exUzsKXKAkTfcbfudkx7e7zl7LZC/v/phOKBN+n44///yDXYuLj/yF0sq+B
bNx35HrxO6Ea4lwiGlQUI4qXpMIzgDiW+H7Cdc7/+Wf/8Bwg2r/FGcCbTe+9aQIWaZEWaZEW
6Y2k6c//qyr+2fXrmP78v3y+sLvtP/+vuL2TT+WLcKuweP7f60il9x+Q8K205FCz+p7Wp+V0
9700qdo67dAzw9LL6WrUVYdMU2MsuH/FAD5N3r9/e3U2eYv0itP8/V8GpddIM/r/FvT22PM/
cU510f9fR/Lw9c9E7Di6d3tVvVQ3O41nqfud4rm442nsXrjrKZ4F9ifhVrD3CfJur1r+G5zJ
VI0l3729SiDlcjlSYt5goDmj++Gt9pnByAXtECbtnesYlBHXJqat6YTZA0rONdODez3HHoSA
7llQMbE73wKpEDENwXOUuQhi9/itEFSxrh3PJXwDKRkgm45he8wcEdsiA9uys6Tukgvbec5C
YMg6apGsRd0NQGt7/bOswmAuyuHHYVVrwRuvSZmkp770Or3+iQAfeh3T6JIu2vWJUiZ7SU2U
VZiULaBgnIRrbV0tLLiqNg5qj2rHe6KpupppEvh26Lc9w6E66Yy4dCutk+xxrY2yJT4N5IAy
o29RJ4oyYclnbf1etEycCFG5e+bYF4xo5NgDKpq0Rx1qAYO1yy7lb4X3Gy4KDtyhIotNxCB9
34bKteLshHe335uMpZiA5dQxs8r6lwL9AruLf/Fx8Nb3T8aaRVYxvg6X1C6y66B2kp5h0Wi+
w3Fcg9XrEaswPg+t0L/tueidU6jvObSPzR8oVKB6pE/hr+aCpnbBMN5eXVkJwXK5ZkyNE9VX
0cahY5wDMlJHQjUDM7t+nQyUwgLFvIeVRKsZM33+7aD+AZcy6UF/Dqpl3nBoOy7JEN0mlu2C
autGbxTFIK2dywngpg4kLbFdGO6ZLAB2keoGdPFsjK7cOGE+k+e2oSf3VrWFIw0xhdWqSTWL
eEOiWSNobmZ7Dgq5Q1GLPEb1uSizXbD0IC/7nDoOWntOpFwJXiMd2zaJzq8Q7ZgqGr21MPeD
D9TG+6povTEQTGGxrF9V3GK9iF52NEaDskGV6/dUvXgR1cb3qKULPRb3IPvFwiP/3KUr+P/Q
i643CTDD/9/czMPv3S2I/XfxAvz/QmFn4f+/llT68HJgEjBvuL+snC5k82kCXg6YfqtfTntu
L3MnTT4Eo1jCJTj4XildMn2Pdc/oQCOGXk7j/TQBLBYrp+WPPShTVt3Oi82s7fRzxXy+kHt6
dNji4H7hAdMhYIDaHEsiZpmB/16CDFjDPSiXEaXSSIKggZp0gIMvhgY+GaLQXp1hCNKibjkN
+kwFkIBC42rSy/ZoSMVdefvMRud1oF02ul3PAVY8q2N7lk51CZ1Ya0jSyuQK/ByGbgZ4kOHt
JJQ8/kgTF+DLaQ7GXR/gzbB82vIBpw0HWkozoeXSJDcdMRCGV1dHXYygLuWSeeE1ai5ghDCH
yjrxb1KFuRlwCHEduIEBzshMWMFCQkOJDCm2Kc0OplAsgf88tv2NNBC4SMim8BevLTtZmPct
2QcTwcdgJQ/cGPDrQOKS7iZlR9DWiEGaBC67+zhc5ULjgWNWKSeyONoATyLWj4QdjGAEk4j/
roClqaiGRCJj5qbviOKvp/6VKL8RBNaGpUPgmX1oOwO2QSRNZaRjG4bLbH6DVD0TAhhatqjn
Opq5QU54lPQbdNS2n1Or3Nnd1ba72zuFu5tbNH/n7hWIf+IY7lWIF+XfCPFwJcakNz2IvsVp
Lv9vwuR+l0GE9K3ZdUz3/wrFne18bP1nu7C5s/D/XkcqfWQwTzNbrqcb9gk0JwS8MgQuVVuP
K82TMGSU2WhzcVbxCe2kI5k66Ibs8Ji/my3ks+DbF5VSwvFTChXB4Ryr4ZEHUTZkfvfuTnG3
cLBby+TvHOxntvaL+cyd7cqdzN3C7u7OJihMtXjwQsIrgXtp3zNM/X40Ri6BO+jC2MbGA25l
fqreFXSlE0oxRgcdcwSGKpiPwWnWGcX9IlP70hT4hmP0YZiHklDxQ8OcVN8B7WlgWaumAWNo
q+sYQxdL/rr4ORngcfvo8ETr00NtZHsc5JFj6JPLtzWnT13RkFi6XtvOJ5Y2tVHL6HNp9jST
0YRCDc8deoFCHRodR3NGCeVOHMqbtHaOvlIy/yc2c2cWasKAEZkav2qrND1rvKKGxa9bXhdG
R5YAxc86ecOGWDkYJ+3+OEgJiOkZ/fEMTL5OHdCO10+oD1PFNO2LU4tpPbqPGzXZtIbAtK8x
WtF1GGF50eKd7SLY5t3ihOLVM9p9DsN8A4LHHq9KFz9m1SMY8xze3xpyZm2KYmMC3YPuxttH
E3Of6YPa/umje+1mpVqbBGR3PXQoeUUzKwBJtkaDjm1y7DxsTC6KmComaPZANv9W/u7OhLJ1
q+twp1YzuYrMks2x3XJ16Aezyz3RnEmGClNj6BoD4zt0FiLRA3FWHkt2DOvZhIJN2jdwzQpa
vGoP6tBrHHs4C3uTDuxzioX71OEKM1ML2w7VXGQOTXWF8X44E0iWP6Tn1OQtklAud91O1oS4
RJtY9f/3bvaqOtg00t+6HjbFWnx+O1gp53tc8YxgLTWeE82d3i1FwDmpV8acr6mFHxtW0EDZ
7DPx/0n9+KDxpPUseEEqLjg/e+gAQlxZfHZeyBayW5vF4jMZ+eqmOa/VuRKHfDfFldicBnEz
vGIFr47haGAxB7+TAW6GXdzq8Cq5DfZRXJntWZA3x3+w1eOVCeLp0eHV+J8McDNsA/45uS3l
Ek1aKRcPREs4tI3ZQxjDTE+nSSLE8pNMv+mz6MsHz2nh3swJjgfSUuH7uUTkMxgC8nnbci5C
1PXCCVS0vI4f7+Ec4by08i0Hr4zWyUI7oEMKHpflng4VUuZmMdjF8PPRJnwN9zqczq1VtUGH
6jrV/enhG2VFOSL5CkR/8yoWPdI5r9yvyKU+MdB49bqlMngV1ZpLMK9Ts3CE6/KA6aa1pZQb
t+6lnDoMlHJiopWvaCRPx766JY6Xn//PXlCIanr25Dpmnf8obm4F8/87xWIqX9zZXuz/eD0p
Mv9/elyFjuCrJe5OPG0e+l1E7uYw7a5mntnMna4cc6mOWFeOKn1Aw2JZ73Wk6Y0YmsWXqWPG
+l9+e3Mz6P9QNIUHwra2Fv3/daT593911flEaSPwb4mJaOlC9lpuO76aycCw/83jylG9SvhM
Pak2jk7qh5V2vXGsjpAt6vINr4bJERMd5wnlti08mEEtrWPyHf9PRV4fKMsS0nDPqHNhMLpB
mJhmEpuR+V4BAFTr4DNb5MLAwwQDMDznlDie5RoQTQ6p04MwRMON/f5+Zi1cDsySq9BqWIw6
bkgmYXK+cy071DsER0moCkHXVbQQrNpy4zR30XQy1Po0S/ZpV/MYFUR1cdqO4nEEExfgHIKP
yYAszSX0knY9yFNxDmyHEmbaF+Zog4xsj7Az2zN1lFVUTgSpJ7ZljsjFGbUU4jVLT5Qj1IjH
MmxsAIJCZFkCoZyoUuFxgzgYFBPJnK5OFhOtY3uuijus1z/cwZ8DIrdpZzL+qKTKX4HXxeJk
5PxiJDtsKXHb99OEqlZPW+3GEak1m40mOaq1WpVHtdZY04OtsAdywnQAjnc53bDSBFhP4zys
SxsgRVVpBQDhzychICcGlLENkm70eryYbjAsF1Wyiq6TEge5T1ytz/gufap1z/yjRVQQgI16
oVkuIjqDtgI86t54QjhxFfNCGzG+Sd3URj5Faz3HAI/cHK0HZGWjoEhhDFanrsa1028gwZfS
4lEcqkwOZtYvVBB4AY0H7vAAAvRRnHSOHs+BZkchcDeEH6DAo1zUyYpDH74p4GeGxIZHCBm4
CBl0EsdwR2ToObhPHhqC2VHcvDehXOUJCJ9zxSBIKahcI9EO55V0+eJ7gtKqmiPuCf1RZeTr
JYla0cpp+3HtuF2vctMZIViyLKISYJ1x0WjhAyrx/tAG2vGUm1SfiHU7sRkzUFWRHDAu0IPT
cgtXeiNSF5+twZvpE40xPCmS5hYifQxBdjqmefweObbjtAC50uBSPar1Qa2kXm/5hVgcfm1f
Y0Z3A9QJNMbdwK7H1z7EkRuJYp1o3a6NeyP72DSRFjbcQEdExxqTSMWyrdHA9hhiwTW6AbQd
6VC/s+rQ9EhjNkk65JugPDjA4FkRzdd2ZIWsoa6iXV/n9Qot56bCpZwMw0Ebj1GyAWZ2Q5hf
tMgRBlA7FaHw84cDJAkynBgnvBIFKVT3nPJGYPjUJM4JEGnbzw0a7bphE1cmNyA5NzSEh2yH
H9nR483ln7KUEtEjnHRGJJiJFT3P7vVQKBrBwysm9vE+jhQWHqZyOBY+5jH/xFSPW9VBBw8v
GW7CWBEjR3S5QNFkT1sJu1mjWf/Nq/Qy2zG+M0cnQ6XoahaOmvYF6iy0x0iql1oRaINqaZRT
SyPRlADq2DhePDFMvas5Otsj6W+kQQiAnYIVHEG/gx76obgFogyUWa1nzbNUFdLXhTaq4lME
GDCpTmAIVjhYGSkAWXIx8tVw7h4IBQ/aIoDkwpbwmCSOj9FYQ8vToSY6s2kw1AiR/8mEWZkg
oVimYeH5n6STJoiAGt4eb56aUHFzccFHBoSTk0M5GmQOax/VDglfoyeHjUeP6sePIr5EqE4Z
k6/dQlftomEUHgrj17ynEZsvVAtvA1WJGyt+qA/NhDXdKxZoBFJ93HtX1TqoUTry9R6vSayT
S1A87ByZtBNA6qDLvXlhlnGMRuPj8q7XsV00uiBm7jQJV1oNF0ayO54b9EI5qy1SIqXYATt4
GFhEGRQX/CErq13qaSEmPC0uTDCeLleQqLhxt7IvurCtOaqwWCDD+HK8Iw6pHhoDA8RUUPfc
qfKLg3H0R9zytcCi74/a4LGncXc3d6HQ9Rjzi1Vta4EzjBax1a60a3DVboOORVzj/ZHvfQee
IXQTJgcWPsgZfATqYYhhQJtIVvA4pmmLUVoDJhywRx5EN9Bj+OOuo2oGeuJjRDcF/TPtHFwx
FNcGDhoCiDdth3K+n4ujtprOfYGwiCTHCIOT0+ZhtLZ24J37tfI400fBXxAoc6AbMSnCsREo
Ujza28VoVLdOHLsbMygMi1dtyxKDToufyYAqukNjWC4Ud/mJhMLeVhH+xUG/bY4D4mkRIgaT
EPxe2wH3hOq/FZYvj8YWklUWhWrF2MAA0EbFK+ZDFzaqQo8OG/uVQzm0zh5ZxYMc/ZE18NaS
Rta4uKOgUUKl0tXikxvxUuD4QBifXExabPhTysWmPUq5+ATJm57amStNn/870p5T9Llero5Z
8/9bmzti/m+3UMQHP+ULu5uF4mL+73WkVrNazua+ke2y1aNqq5zzmCOm+HMdw8oN8HbjuDF2
37bs1aetE3Ef71yyYZZe0tVVOYe1t7pCvrYGKNfhCypZJxmXbxzfM8Uub5IBq7GHoJNUEPde
kIyzF25C2UjYj7KhbElaXXU8a8+fRltdAQKAeKQAaAUKMvwBB3fydwrwWzEkjHzdp2Iv+3XI
A/+nYzP6dnThRVqkRVqkRVqkRVqkRVqkRVqkRVqkRVqkRVqkien/APCZpPAAGAEA
--------------040208090304060105090007--