From: =?big5?B?pdEgV2luZG93cyBJbnRlcm5ldCBFeHBsb3JlciA4IMB4pnM=?=
Subject: =?big5?B?t3OlX6WrrEapsqnSxN2mVb73w/a+x67Vp1muybNxsFSodLLOqM+lzrresnqtbsJJ?=
Date: Fri, 26 Sep 2014 13:54:14 +0800
MIME-Version: 1.0
Content-Type: multipart/related;
	type="multipart/alternative";
	boundary="----=_NextPart_000_0000_01CFD991.5B4E09C0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17609

這是 MIME 格式的 Multipart 郵件。

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/logo.gif

R0lGODlhmwBBAOYAAPv7+/X19WZmZoC3ydnZ2b/b5IDQ6b/n9Obm5kC43kCTrXBwcOzs7Hl5eRCm
1u/5/KCgoGDE5N/z+eLi4p/b7vLy8jCy28XFxVC+4e/2+GClu3DK5hB4mSCs2SCBoKmpqc/t9+Pj
48/k6t/t8a/h8Y/V7IODg+fn5zCKp4/Az7Ozs5aWloyMjHCuwuvr65/J1lCctPb29unp6c/Pz+rq
6ujo6Ly8vK/S3fz8/ODg4eXl5fr6+vDw8Pf39+/v7/39/bXR2lugttzd3PHx8T2QqtbX1+Tk5N7e
3g93mKbJ1N/f3/n5+Xh4ePj4+MTZ4EyYsC6IpIuLi/7+/tPV1XmxwpfBztvb29ra2vPz82qpvOHh
4YGBgdbW1vT09NXc3uPq7ABvkgCg0////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5
BAAAAAAALAAAAACbAEEAAAf/gGKCg4SFhoMBLoeLjI2Oiz09j5OUlC4BlZmOODqanp8xMZ+jlTo4
pKM1oqisi6GtsIUxNbGUFTK1ua+5sTIVvAcOGAeFOCGEDwmsER0GD5MkBhTPsqu8sCGntQZh3RuE
OtZiG2ERpBLdYR0gjQcd6RbUiJjXsDGdlSf6+/o6PoIU0oUpMUiLviWCEnSzQOKQjxo1ZEic2EUQ
t3QO5BUKKDBMRkGJAiRyQbKkSZM0UqpcqXKiS4kQY8qswa/miSMhEOjcqVOHTx37HoHoSEyMlEIO
OibA4IwSho7mBIGQIOhAx3TK5tWLheOINlhKD6G72s0B1UcKO1J94MABwXdk/8MUFSNya6whCGql
TceuUIS43eY2etqRYIluCawCxqDVLjZ6rcgJJEjoL2AKlC4KZEyYqgXAYRo7ZgVASCzN3QwMOvA5
roOGlEhczaiQsZgHrcmKHo2KhxFYitOdhRsXg0ahZDcopCxmKFnbdCHzRpXjF6vgYbKKyd3RracH
ZBMoFLwX49no01vtINAKe4eisq8mOJ+Jo1Ju5K8yR5+elY9jqKDWDWZiSHCAO6ndVoIBBtDnCHdY
jUdIeeoUUld/rBBg3SgUdtOXGJZ5FKJHHzYyokARKLRBBBFgRiGBu2H4yXqMhGDjjS4AMAhuxQHU
TQQkECZQB4Pw9M8gJwpEAf+FEXBHpCAM6CQST1RWaeWVWGJ545Zb5uCll1NY8aWXNzZCQlJxYSZB
UlGJIWQ6ghWSDGjOgQZjjDJ+QoA4jjzw5lUEWgabGNh1wwgIxJEVwUUGQFjWIRfmScoORcSGZlzf
CIKmdoW2uRFoHqLJTpKZWiidpJ/QACAjfoJqASFDTlPonYQ4qpSQgsgmmYeQnoqqJ3syciaocsEq
X0e0DkLspaGJUQIFwT1pSKS/zljpIXWCpl2BxIah2iGJLmboIId5M8hUeFabCQKrFrIrYIOKgRoG
zKazHyGFkmWBYoPYF8ZZaxYrxg6+qptJEXwKwmNHQjpASLbFkkBhnIRQUC//UfyK4e+323Vj2w+n
ZjBACiIYooACLQxwQyMjaEDyICKcrMEAGTTyQgo1OzJCDOwtsqR4G0gwVnY7WsBdUQJSXMgBJJRw
QHmM8etvmyMiYogGYIChQSFZg+FBATZ3zcEIYhTQ9QCCgH0I1hykIEYKGqxcyAtgtOAFA5Ts+i1u
8Ux2wANJU8KWQFRd5O9HGguUFciGZNC12oJ0rYAgGrxwCAxZc1DA5il0nUIBWKNQciEcgKFAyQNk
rcAArKfsgeoE7PDI4AlKYPQzs01MSbkeW5ScjwLBRvAhr4MxwuhiSC4G3XUX4jgYHIiQAeeeF4BC
18iPDMYAI8AgctYe0CyG/wcwFF9AD6YV4gMWhLxrQAlt9dWt0obQHpjvV1HlbzmDxFBwzDdoGetS
Bz4CZs1yg0hd9AhhtqyBTQGqg5zZOPACtl2vbmAQndYgCAawIQBvgwBAzwQxtI58aDK2ol8hUCMt
AfHvRB2QB7VEMIAC5EwDZIuc6hghAjDAAAUtuEHOGthBMXDwdcgrXuY4OIDXtQAFBeCg2kYoBiFI
YhBPCdedBPI3R6nwXB0plYAcAIIO3YlaGXhd9EbgAUIobxE1JKIHUoa1rM2seOHLoRgwlzka2rEF
T0xB6RwoiB7w4JBGOAIPZEeoAW2mEAJhR3y4CJIKWNKSTVBYuOYioAQQR/8896NLBURySUtWIWtP
CEIQStk1IlgyCVD4QiktmYWsIcEJlgRC14BQASJkzZWldMITwICEJFSAClkLgi7BoEwoZA0IQxgC
DwSBAyqK4R0JCJFZIJkOQSTpi+O4CiFc+CPPdGM/1Cpb1q6HQB2aTgwiKJ0HkCeI4rWTiA/cYSEU
ME8FaKAFWUNbQI1ISEKEQDoceVeplJUOiZHli/l61SBcaIGzBAedvoLBD8HwggEaMHwX9BoD7SiG
EbCujlproj7TRreUcXCgAVXAICEnhiHgYxDhShA3QfVFR22LG2Tc1TBABCdCpFMQI8ggIZTYgkZw
cGyDwCc8b0BPMQwya3z/VB3mOKABmRZUDKX5FFk4xlCeCis84wxDpvxVHo0soWBYaypSu4aCRhBx
clF9nCBQoDlCZHV7HrjgACCIVykOwginetOlyCqI+TEiSWGQqO84BoKLhYFWRylEUsEgt7dljmwZ
wKHzFMBHBYjspF2bWVb1mIKUYfV72yOsIAwriBMYYjKaYawYNkOVd4XhOO1D60S9RQgJdEgdJQCu
GDLwggvmbI9Z66wGOIC2QWQAtnhNm14F8Vztdg16TIRg+GL21UMopAMNyW0h6tQmAZkpHR0gzE+J
OwjjAsYBEXCQGG5wvboOonRbG8RmYVAIAmZXnV9FgQaee4PvXjW2YqPt/yIewMl0MFa+wRWIAZaS
XEO8IwKAQwwhnrI3co7VEArMgAgK0Lm6DQAGJ/tudQVh4BVTL2ufA906E/jdl26vxaorryPUi6R0
YACUoHpNIUgAm4tsKymqIUFOHWAr/hGCgy8A6Hczh8MjEsLAI9gci6sn5s0NAmvFa0H5BnplITeC
yE/rFlkQZwgng1Edx51PgSBLn67BoMHfRcELbti1L68UwUVchAJQQEC0NZq7KVBpoieR2w3kVM72
WoSdBeHbwhRCAicSjOSex9WqtpgDhn5nXt08CBTA1tFsXq4SaTrkdKwI04DRLf44dunIlqi4lqGz
GC64MkZ317oybacYDP88UlYvt2aPfjSPoafHR+TWfpFNwAakcSB5UPgABiBMB/SLPxhhahIHcND0
cljtSRRgAC+gp0lfYENHvDsFZMsy9whBw31XYpLE+Da5A9SN8whoXwZLeCE+s616VHahHVNHshRu
MBBsQLm8sXi8JhGATFL84wk/KshHPpoJsCBdJH8EAFbO8pazHAc/wIHLZ07zmtu85jCXOc2joISV
c0EALBfJzYdO9KLfXAlRMPrKFT4BEIqBANYUAwMI4HQxCKBnBBAAIq5AgAmgYupVf3rUxTABr5Pd
7IfIOiwacAFBNAACgoAABC7QAEFcQAB4YwDe5R73uouB7osQAARM0Pb/CTTABCZoANo/sAAWLOAD
gmCBAASggqdrnS5bYILj4S4Gtrud83w/BOMdX3myHz7xZs/64B+/esgfYvJXB/zf8S512jviA3Cf
wAIW4PYZBID2K1iADf5uAjHMwO+79zoEXG8IAQzf7aVXgd8vsABMBGABbbc61i9vAyZgQu9exz3Z
d9/7Q1AfExOgfQOi7/est/3ubZ8B79N++d/jLfjDv0DxH3F8MXwg+DOgd5hAeL83eGKwfHSBd/K3
ApDXADMQeD2TfiAEfmKwApx3gCsgCFcnCGoHElOXdezRf/+3AAEoAAVjgYUggVAiAF7XgS54eYbQ
gWJAgIJXfAg4CXhH/3hydwEnJwYqAAHHp3cM0AA9wwIXgHt0p3eMsIGWRwgbyAKl54M9yIQdGACO
xwKS1zM5eAE72IOGAIWFIIPa14RkKIaEIIM/GIR4R4SUsAIqYILHBwHPZ3gIaAIqMH9iYAMQ4IC/
pwIZCIGCoIIJ6HUoKAj/p4HbF3crQA9M6IZw+HbPZwgMmIK293steHkvuAgySIeQZ4d4+Ag2sAB/
mHyDQIqh+IfjN3/4NwiM53RM2HnsZ3fVRxfYh4gceHks4HogKAinKAikaIgLAELnR3bqF4tliIkw
2Iq3SAimKIqVoHfZt4eEII21l32fZ3e253/BOAivaHiIp3is2HiPN1EILNAAkNeB8od4WbiC0eh3
wOh0o7cApeeNqLeMxxiOIHR9hNd37JhyZxh1YBeGaIcIVMcKAfmPrBAABemPDNmQDvmQEBmREjmR
jPADFLkIgQAAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/icon099.gif

R0lGODlhEAAQAPeTAOWmGZBbQefAkvHFlvvQoeetc/3Xrueyfd6WTuOxgdakc+TPtsSYbPPGluab
TLq3u/PdxPXUsPLRrJhnRH+Qt+SlG9eeMZHOdlqPWleI3pfOd2a6/8Do/9XMxU2T/eatO8WgeomD
VLqyv6l+YWGWYN+kI2ioWUF80Vun/nOv5+WuNGSjVl7A/5ZiRXWSoJLF/2WDyKd6QX2ep6VzVYnN
ddnPw6Kfs5Z8cIW/gn+MdZuy3cysk+WnHavYnffq3dOFNrLX/Z/QfIeey7eOa/v6+o7Od3WU5JOZ
hOfQuIPLcKyFcZzK947NcXnJapJdQ0F+0vb59tWdMXCwbYd5V5R6bojNclp6z5TPeVen/z96zWSk
XDRwy2qRaMW3rM2+qGG3/9amfLHVpHWKwMWrg5tqTFaTVFa0/3uud12y/4/OeMeTS/X3+1t91sm5
scejeZppUF6w/66AY4/OdnvLapJdQVy0/02X/1Wg/eKcUvbIjZhiRp6Pb9zDrImUfYuniNu/p1x1
t1l+yN+hJMSmd1+w/n5zh1+4/2XK/yxVdHS0az9ftKqSfYTW/4aqrea4ZWenWUF+07XD3ff69v//
/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAJMALAAAAAAQABAA
AAjTACcJHCjQS5QKggYRIciwRgkAEAGMYUjQjQpHeT7wsEBxIAgkAwg0WKCmo8AHCiQYiCBgEcMu
ZOjomUKlQIIDDLhAGdihRYCfAfYc6ZMjDI4zkgSOeBMHzAwnE4JoYFKlhxQ/Aof8CTkyRhoaSeY0
IYHgZMqVAkJcKSLnQiIMDgQKuWETJyItJh6tKCMCwiQdVjg0kuFiiREYaxhGAgSE0SEWZrC8YEOB
4Y8dKQwRQnHHjgcbZQniURJowxc4aOpkKBSXoA8+YrY8gXQii6I2fgkGBAA7

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/icon093.gif

R0lGODlhEAAQAPePAGK5/o26ZKl7Tqh7TT1wIJGugbLSlZSwhOrMq/fUr0FzJTdrGVOMKI+8Zzpu
IuqzeGU+HKvI/GC3/12ISodLEe7fzc57KK6BVzhVqjBaX4y8ZdTi9O7Kptbk9l+2/6qVhvr7/Y+7
anLU/1us/89+K3I/D2Gy/p602oGrYR9MxPHFl1yHSFOc/racjIu6Yvz7+mtFIvX19hxGvrHTkG3H
/pdLD2nJ/6dtNBxIvKS536JpL6Tk/2aOT5JQHJjR/1ml/opKDyZKrmNjiHF8mcPW8+S3imGbp6W8
mYJJGoe5YIS79YpIDyZIrW5AFZlYEmG5/nJEGf3796uBW2k/FlePLXKXYNGpfytMrbTUlTVgv12s
/vbPpVqo/pit1Pb4+1hmn7HWkvfo2a50NJtYEtDmuoc+DPbQqMiccfbQp4dLD7igkOrTurbUnGi/
/odKD/n6/ZBLEPjMnNF+KqSViHVBEmS5/kRUiu7Np3qX0uW7jmPA/6xwL4VMFWO2/4e6YLiXfP79
+16x/vf4+0x7MZNTEd+1ie66gpSes3irrp9YErzJ4Vei/pZPEnWDoP///////wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAI8ALAAAAAAQABAA
AAjRAB8JHEiwoMEWPeAsQfLB4EA1jMY4IeSmxByHj2okApKGAh86EDCW+VPkTBMoMKa8cKgjjIo8
VgpV2APIoRQOCNCYQXDngkMQjW7ESZBgi5ghggq+OYFjg4ABAwQQkdHFC8EcKTrsEGFDjwdEVXis
OCJQkZ0IPmi0qRPICAosZEJQKfCIxINDEvqY0PJjwgwwjjQ0IPBIjqEvSkZwWcRiEBtHkA0seLTG
gpAsTwBoduDCj6MkgwVGiYEHw5UgTDIwCGAgAAO6GB8dULBAwYFHAQEAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/navmenu02_01.gif

R0lGODlhIQBBANUAAPDw8Pj4+PX19e7u7vb29urq6vT09PLy8vHx8e/v7+vr6+fn5/Pz8+zs7Obm
5ujo6O3t7eLi4unp6eTk5OHh4d7e3t/f3+Pj493d3c7OztbW1tzc3OXl5dnZ2eDg4Nra2tLS0tvb
29XV1czMzdjY2ODg4c3NztTU1NDQ0NfX1/f39/r6+vn5+fz8/P39/fv7+/7+/v///wAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAhAEEAAAb/wJgw
1lq1YrAkzMVsOV/QlVTKqlpZw2ErEHgxXc8XlcXlqs7ocxapZKkIK/GKHDgTCIJ83sDnQ6NjXAQH
B3wMBwgIAAmMA44JjpF/U1V1bwIGBwMNA5AQDQ0KogWkpQVCSk1iZG8GDAAKDw8Nn6GjpqepYKsB
eIeLmxIRFBcPC8cOycpsqnOtDAgJnwXGDhwVIR8WEdzcFBSpLautBwCb1AsNBiwubEpJX/BOc72Z
0rELAytZ77pMdpgQ3XvgYAIFBwTWuHv3xcUScSvqHZBWIF87hQsZOgTjTMArCBUHwMBIMsuuiAQM
IBgQS8HIkjB3uREwsYEECUdgxhTTC9qA/wIIdeoUN7PmLKE6JSwoGMHChg4aDiCFeQDlRwkFXk7F
WCCCApoJGjxIsLXkCxYOMDhIoGCBgLIkz6ow4EFDBQdY4CqUq3JAhww59WbhiwAkhYuChxAG6UBr
4hiEfzp48XiIBwsYPqQQASIDgspC5IJtKxU0T48AxEIATcRq4QISKFcmOldTWwagiQZADUHCA8SC
OdZb2RZAZZkqeCtNmPikxLBK8+p9eLYn8QcSpJel3vEVS1kq9FaogGHDhhAdSGg4AQJFBhMjLATY
vsS5L3MNKi5AoB2mLt2+RAOBAko9UAACcDQEhhNOuLNgdcn9MsCA6FgzwQQXXNBNN6jIA71RHSlB
s8gnCsAmyzEoLrPQg/Tg4QoiwNQiyowlntIhPCex4iIDhyiyCCOQRDIAP/9BRMclmLhyCCFMErKG
RrvIceQbd+hh5VsKQRnGGHSYkUZ4GPXzBYOTTEGJFf6JOSaDYfwBBVL9+KNgQ3DFaacSrJWUAACL
8Onnn4AGCkAihBKa56GIJqrooowKgeWiE0Bw56SUMtQAB17MqemmmjohQAkCsCnqqKSO+gcLFyTg
5qqstuoqFEq9KmurQQAAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/navmenu02_02.gif

R0lGODlhOgBBAPcAAJncJsf2cNLspcTTtdnZ5ujo6ZnXd/Hx8bDsQa3qPafVdcDgnKKircDAynnF
AYrMK5rgnqe4ps3N1N/f5bPinLGxur29xbbxSMTEytLS2oC5S2ymPablNXXCANzc6KroOZfdj9fk
xNbW5WOzAJ3fKqrlQX7IBeDg4IyMmL/0epHXHdXV2oXNDoDKCEycAIbOENbW3bHgnKamsOTk647U
GcXFz1SjALa2u8nylsLCzNbW1tvb4orDT7zDveXl7N3d3rm5wsLVq8rtoojQEnGlSqnhnLnyV5/h
nOPj7aLiMNXdztTqsq2ttoPKO6DhLmy7AM7O35m3kdHR0XSsPZqapu3t7bXwRuPj5MjIzL3xYsnJ
1oOpdOXl5dfZ2d3d473jnLrhnI3YaM7O2O/v8orRFGi2ApbaIrTdieLi6sz2goOsZcX2jHG+AJTY
IJ/gLKqqtcrKy8XF0ozTFtX4l7q6v7+/yNjY3uvr8dHR4vb2+dDQ13emV/n5/ImwbObm62q4Aenp
7tra3sTinIqqgKXkM7LuQ+7u8Ovr7urq7unp62+9ANPT5NLS3a/fnH+hceHh6+Dg6ZPXHu3t8MLi
nFSbHZDVGqbfnM7Oz/T093u+Mdva27jfnKnnOPDw8pvdJ3PAAKLQa2qtKZqvloLLCubm5vT09PX1
9eLi4vr6+u/v7/j4+Pb29sLhnPPz8+fn56fmNvPz9cjI0fT09YPMDMvL3LPvReHh4ePj6XvGAuXl
6cXknLOzvMPDyV+kHbXya56eqaXYiWa0CsTOyubm57jzgLe3wbDadaS4nm+7FLS0v6nPdLruieTk
57zLuYvbfa/eYZDVYqvpO87XzJjbJIDKJMLbmKPjMnzHA4zOWMXGybq6xJKSnnjEAF2WO8/P4V6s
BWWgOZ3QWGOpGN/g4bfyTsjtgXjDFLXuS7DCs7LbkoKCj7C6sYrUL5XZIcf3g+7u9JvcLrHWjLfY
hbnXj7LxZ/Ly8urq6u7u7vz8/P39/ff39/7+/vn5+fv7+0JCQv///yH5BAAAAAAALAAAAAA6AEEA
AAj/APkJHEiwoMGDCBMqHKivocOHECNKnEixosNSGDNq3Mixo0eOsmSZwlTvI8Z7KO8dWMmypcuX
MA+k6tRpjCFJdyQB2gnonZ0rMVfaG2ovpdGjSI1WqYIokR8/PqJGnUB1R6CrMyRlw5A0JdGvYMMS
TVTgqVQfE7zYgbEig4QeEY5t6aOmW5esGKSIJUqqr9+/gAHn8jFjhx232daJGqSGyJQNoTTwAKVg
wQJKt26NuXEp8F9boEOLHj36VjZRjvaAgyxZQWXLsGNTeoRm8yXSovPlw8cbX7/fqIKjGqiqeKlb
GiizWh67efMz4B5BynXjSr3r2LP3/t1PuMDiqhyu/1rV6VE4QboEqV/OynlzBXsgQbp1w1aq+/jz
9/bdPTjx8A2NB4gSxuhioHrqTcKeewtksgUkE+xwwyH5VZiKbrvxxl1/w31XHCBBnPHFiCR+AcaJ
KG6i4ibpZPJNFB48ssIN2dV43T845qjjjjr6oAwFQAZJQQxENmLkkcDwEMw3NqATowR08CjllFR6
EE8RWGZZhCVcWmKAAdg0gUwZZYwwgg3CeABJNlhQ6aab+RCgwBF0HgECNE1QYw4bbCiiyBN/BBro
CC4QQAASvLRJ5T5vSpkHAQZAAEIY1DjgADcdZPrJJ3z6+cSnf/QiwqHFSOEmo43u+A4BzoTxwigt
mP9gwjW4XIqppp3+CY4IIiBxQyCnprrjHdKwM8QQL7AwC6yx0mprph1wygYRvHrwa7DC5vjIAJXQ
IAcZZCCr7LKxmoBLrbd2sAWvBNxQBbbZ/uPBPG2ooEK334b7QrLkyuosN4MsskgG7sKb7SLyTGNG
O21Ecq+33yLLL7Mm/BHBInjoccMqBqfKxyLPkOCJJwAo3I7DleALrrjLloEOHnhIcMObqGaLCR7P
JOGEGySIXPLC9T6c77HfeAMFFBjM3HGjd3hTAgeEWKMzzz6b3LDQcohDCy2MWKDoovH+4wMtCUTz
ASevQJ3E1CJ7Ms007Zxs7xRa1L1LNjSHvcMA5yD/kEDZZ6cdNdtVL0xEHIgz8fWUNQsLwwBp1FII
An4DjjbUUu/cM8l95OA5EyvkHW8NQcwRADkXWCE55X+bjfbgmjvSQAPavBH60m82UE0Ac8yRRgBG
pL565a4LDo8oswMhAzOiCztGDRkosYQAOLizxhopZEGO6pMTf/YDx9TRwC4yJNJ8qrDMPnsNYqwQ
whJC4EAMMb4YYYUVhXSfwAPqV8CAIecT1iHsEAv1NSAHsZCAHd4nhGXQA3XcCwUvZvcGBuSjcTzC
YLxgcQs9zE4b2aiDBXIggQwEIgQCKEcWLsAD9cngF/3AxwUZFzYp9WOAGKgAEAzYgFiIAQbjaEYO
/2YnAyaoAhUxnOGONFhDHXHQgzxc3xAbQIUKrEIfquAHKvCRwSY2SgIy0GEUZ1fFUpjiiv2QEhO9
qKNDUGEbKFDHNhhgQOUF4gCtKAUX1cjGNwGBAVRAAQq2cYJhjGMFP6jCPVLRinyArY9UQkQF/MeA
CnCBFK4owFCqYAqa7ac7MdyPKEcpSj+soAY1aEAx6lAH6HnBFqe4AhdcYQpSirIfp8ilLnWQDSno
8pfA/KUm6sCENxgzGXXQghiWqQdGiAEOcLjECYJJTVt4hhRdgIMOLnlNv1yhDhUgnwyAYAELsFJ8
B6yBBHQwjG4Chgt7GcoPLtGFeNrznvgcSiK6Yv+UU0jhB/wMqEAHWgUbGbQepNCBLQ7K0IY69DoH
MIVEJ0rRipoiETq4gkU3ytGOcrQUFpEIKTRRhZCa1CKrWEhCCnCCe6j0pQlRxYa444+a2vSmv7lp
TTfkD5rOtKc51alOuYMKDBnVH0Y9alKReg8uIDUfT9VNVKOaVKhWVTf42IdWt7oPf3CVq17dali1
6g9XlMKrQtWpWIX6VUfyyB//EGpccwRXHMEVrgfwB8d0VNe37qivONqHQf1RD3+04rBnTexZdboK
vTa2CgW4R1rBU5y0Cgc4UrorX+e6Wbt69h+S5Udn6frXJWY2rjrlLGptytm+pvWvctUREzVLWsCH
qraurv1HPjqRCnzY9rem9etp+craz64Wp8RNrWwzm9aa2rW4o/1tPQ6QRuPa9h+zndJ1k0tXueZj
sb91bmAh6cXvlsKtjPuqetfL3va6Nx+mqEdW13vV+tr3vvjFUD9KclVb+ve/AA4wKvJ4y5ka+MAI
TrCCDcwPjBB1wRCOsIRnagpXuCIgADs=

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/navmenu02_03.gif

R0lGODlhQQBBAPcAAMe1VZSrY93d3fbdy9PU1PzVtYqnTtzpxvSCCnGuzOWXcLnLVsG8suLi4vX1
9drt+ebilujo6bjV6jOHtOh6ANXYylvD++jUdu3szNfquvfrpexxFfXxxszMy26PL8jYmuzUxq2Y
MNfLw8rbhsXc6bvl/Oy9obKdi/fuyfLkivundXiWPt/f3/Po3+5+Bdfavenu8e3VZPHrwdna2ky5
/tbf5LTd9LLJOPuHEKC0d+30+e3q1v6JEsTk01Ocx+Tk5JnI0fX17Ozs7PusXPHi2qvEJ4SzzrPG
Rfr17p2yKPqGDqi8NvKBCOnj2bfM2caTY/Ty5dndijGyvh+Z8snWf+3krIWHh7Z0NtPi6q7O3viE
Df355vb29rd8Q7NqJ/3+/vWmVkWQt/7t4u7m4j2u+uvr7C6j9vmfa+bm55GnGfGAB+7ktM6ngdm8
n7ikQf788uqEFet8AuXewP6IEelvE+/v7/Hx8eVuMuC8J+x6Qd21GOfLRPmRXuTDNfOGUN9jI+rG
JXDL/sPTZfeEDP2IEfPz8/Dw8Ox9A/mFDsexPPB/BtnPn+Hi4v2PIOHh4fv7/PmGDtfX1+jt4Ovs
7LfMReDg4YnB5fK8js6JT9jArNDiqunDGdqbafjIm/Dw8b7NaO/w8JvO8L3Nitrc1+vGoefn5/HM
p/DFsPLTwMe6d+3t7e3u7u7v7NvVr+3LNet4I+LLXfTw3PaJF/CKHVujx/Hbd8/i7Mvq9Prwus3p
xsbM0+vRVd7g3sTY4OPj49fjmO7w6e+vd+zhje+bRurv5vWDC+Ll3uXt3fiMHHq22/7x50a5v4eg
sejd1X6dP7HTr8fTr6q0t+nyzv/7+eFqLv/38NKvjKZVCjei8Obj4cjhqKnh/73f7m/G927S+tPZ
3ae6g8+ddNOecK3XzYWNkebTv97m6iB6rXnCt/Dx8avAgr/ReOT4/0jE6/KpcuXl5e+qhO6ygvDk
nvz8/P39/ebm5vT09P7+/urq6u7u7vf39/n5+fLy8vv7+0JCQv///yH5BAAAAAAALAAAAABBAEEA
AAj/APcJHEiwoMGDCBMqVKivocOHECNKnEixYkV7GDNq3Mixo8ePIEHaGUmypMmTKE3GgpKypUuS
+WLKnEmzpk2ZseQlSnWzp0+Z+IIKHUq0qFF8O3S6kSPnqNOnQutJnUq1qtQfWH9YTZpo6Rd771j4
2rHDqtmzU7E6Wsu2rdu3LOKyaFIFwNJ/j0AxItChVQphHwK8HUyYLb/DiBMrXnwYigwAIeT8+7ev
jAACreSloOIsRw7GoEPXGU26tOnTjiEvmnzPQakZFdakiGIgwLF9xoTUYQUMBozTwIMLD56vSojV
k+el8zUKgwbazl7c4xJhRocKGXpY8jE8eOjvh2Eh/5lMWchYXBDUeYD270uhd5E6HNAGZEKCLOAZ
k9/Pvz95V1v8Mx0+GODCgXrqJFfHXhVoMo4PYdiyjyqeFKLDA9OI4d+GHHK4SQwaoLDGBReIsgI4
QUy2jxACjHJADwmcA8Q/+uBjnROhGMHJNR1OxkWPHAISwx594KHHBwZIwhp1vByTS31G6DBdKZHo
IoElJ3jBRhs93lMIkBsKSaSRI5BHTyFoSPIiLWE8IGAhPxDQSyjRYNJFC/tMEoEdLRTg3z32gOmf
mEXqUYQ098xjBzGi5JLMBFlMRo8njnzDjRPheMFljdZlEgwcfwYqKH+EGlnEAiOMsE4Sz0wQ5WT9
rP9SCRbcMHDFE+NxQaUIbQxDAQWhjkrqkIXeIMgRSySRBjokkFeZObf0Is4V5QgIViQiXALHr8D2
B6iw+5Wqh7HIKrsMO5PpU4YN3GSipaT8+BIJKmBw+2uw4E4mLrnJpiGFBduUYIMFyTxxp6SGMNJM
J7McEoe9+Oa777H9ShEIDWSYMQUz1pD3SD7ZDDCEGi44DLG3okpMrJH8KmsxxhqToyFlqoDgjiwI
MEGyyfeinK++K49LscsXZzyFFWcUoMwA8FBDRzHF6KxIyQ93y9+3P09crr9Fa2yFCnz4kccdf9Ax
SDE5qzF11RGDq3XFXR8Ntthk06HF2WlTbfV+WKv/PKbQW79s9Ndhj102IlpALTXVbQv7NtEwy114
3UoggvficTQ+6uNcR0443X9soIQSd6Otc8maC8q54F7PbfgGOFReOhNMTJ06mKvH/fnrOMRuuelq
3w5k7p67TvYGhMRe+eVqCN9jLbv83XLngxsfOiHJKwFJ6Tk73+EbtUg/NPWtTx46D8n7nnjU3ve4
BQoovDE965KDvgH62S+PdvuCUjI+/bs7Hg/wF7vtnY1/YPrFAgKnO+vdb4Dpqxwy/OSzn/kHA1T4
xAI+0I4Gmu+BPJhD+oZQjQ31zYIcsoAH7TdACDaCgia0wzxmSMMa2vCGOKyhNyxQvA+2kAdDQEIO
/2nYj0g04IhITGISKyGAJirxiUisQTdgho0TOHCAjSAFFJ/oCAGg5SwNWItWvigVLEiABPWIxxXB
0AQyTiUsUHFKPbQSR6Fc4gzme4Up6iiUCPjiJz8RQgQiUAZAjgGPdFPAGABJE1WUIj+QrIMQVGEI
8KDCBKcgAiQXYwd8OOCToAylKEdJSjvUwQ6kBCUXUsnKUNpDCBaJpUQccBhZ2tIhXMjHQnbJy17y
Uh+G6Icwh0nMYvqDmMc0pjD9wUxmFnOZz+xHMod5zGn2Yx/8oIc2t8nNbvqDHs0M5za/Cc5xcjOc
zTynN8u5zXkU4h7wjKc84xlOePpjnvVEpz3RqdbPe9zTn/yMJz1SBiR/TAad+zHoPxS6UP8olKEI
bejVghlNYs6QmdokJzvBSU5ySnSh/GSoRMP5UWsJqpkgRelBmZlSlvZHpOR5KEhLekIOGVSmB83p
TW+q05CqVKY85RtBbTpSkjYUqCWFqUhZylOY1rRDOE1qTkvaUpXOdKdUfSpRq5pQnUq1q/yBKE2H
CtWqurSoMY0pP8O60rSyhqwojKugvDTPutr1rnaV65+y2c2++vWvfdWrt2Q4xMIadohyvUcdKsrY
xjpWmInVx2MnS9nKNjYgADs=

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/navmenu02_04.gif

R0lGODlhQQBBAPcAAP7j6/hEfFZvj//t8v4pc/+Ru/W+0vtYmOq1yIGUrMLL1vX19fy1y/qqwZOj
uOcDQ/Hx8eYjaeHl7NwGUd0UY/RslOEIVtZysP98qqOxw9/f3+bm5tzh6OHh4dRLnfR2m9jd5vwk
buzK1+ccaP48fP55pf9oov3U4Oxqm+gpXc3U5Ojd4625yt+rxv5youTo7e3s7ORUoMXN3f+syuOS
tvzE1f7e6v0ydf8xe/eFp+Li4v2Dsv+cwf+e1fj5+/Jjjuns8ZGhuP5pm9bc6f2MsrK+y9U4k/6Y
u/p8sP5FgvyUtn2QqO7w9JuqvZ2rwWqAnI2etNuixo2euqCuwuTk5ONNhfqjve1Fc73H1PDc4/Rq
nNLY4f0CVfHz9uQPXOw7aqi0y+MbVMjQ23WKpOmmvai1xuM8eve/09DX4v1Ui56svv/2+fFVgf6D
q/+azOUVTfBNgOZajnGGoeVFgvSrxdTa5bXAzftajf10qf+91rbB0a660fQMVtTa4v/d53iMprO+
0feKqv7N3f3I2MrS3e9Dfd8lbvL094WXr9RZpLvE0fT1+fZnkf9GjIudsvvO2+zv9ezv874xcdqL
vY2es7zG0v9Njomasv/L3oeZsOFDfpmou5enu+8ITe46c/7+/v39/fz8/P7a5b/I2v77/P7Y4/y/
0co7evvL2PM6cfPz8+AEP9PY3v/9/vmBpfeNq/8JWubp8o+gtu0vcoiar/7v9N6Dp/V3ofJzrekr
d/h8oHqOp/xmmPAza77H1dDW3u9sqvCiwP+ixdre6vCct/mYtew8fOXl5bpKgsFZjdNMh9bc5dcc
dvxll7uVtv39/vwfaPSWwbOsxPz8/Z+tv/hLhvr6+/Ls7v/W5v7p7/RQiPBbhPFaieNym4uTrfq+
z/nK3fwQXcjP4PazzPm1yNjY2PSPt/85gMmQtcsea7Z2n+jr8/j4+eK+0/+j2eQfWOkeVrjC0d1v
mrrE1/e70el6s+/v7/T09Orq6vv7++7u7vn5+ff39/Ly8kJCQv///yH5BAAAAAAALAAAAABBAEEA
AAj/APcJHEiwoMGDCBMqVMivocOHECNKnEixYsV7GDNq3Mixo8ePIEFCGEmypMmTKFOqXLlSn8uX
MGPKnAkzyzUEImDQ3MlTH76fQIMKHUoU34pbDLjM4KKlUBwyRaNGpUJlg9WrWLNqxXqMWDMCR24M
CuCC1w1jcY5ZpUpV7da3Gzp00ECXrty7ePPqJQMtCQEGSgAwEETkhhAL3fTOrWtX8d1+kCNLnkyZ
8o0bdz48OiHKT6kajHjx8ZKlsmnT9lKrXs26detOb1J8QHVigO0aOdiEmYDAte/fwIOzXpXqCLnN
nT8Xc6XNQu/VrFj94iA89enrpvnAS8FoEGfPpj5c/9mNAPILapsELHnyBJEiCNj/yZ9Pv759+8Tb
WAHwHUApK0Q0Z8A/kQiQCSdyQLHELmMkkMF9EEYoIX18pJDCNuQMkhwDjHyx2xn/xCNHExkoQAgh
GSCCSAIgSLjAhDDOt0ovFbxCW3Km5OBKIRMYEMkTCZQhwXwS6DHFH01E+IkqMcbYSRgpVHBjNn7k
CMeHkTTRBCV2sICFLwqUoWIZSt7T5IStEFfCK8iBl4MucFhwBhNPlFHJMi8AAcQWimDhCCdlnikh
KbBFuRkAAwBg5TsTzInIH5sokCcQfbAgixwPQviJmYJCSMqMP7hCjimDCFJDA7owUogF9DBBCQtN
qP9hRx992DGFGrJket+mnXoK2xWBZJONbQOUosQPKUxATxdPbPILEJNKwIECl8gSaK/2hdJJAGz8
0EADDHzDgBUfsOGJF8tOkYAjlYhBqwJFULILmZpyii19pDxwxSvf2LDGGgOsYQMADXAzATGHQCFG
Ee2+W0QRTUxx7b3zkcJHGiRggAERSqSBQcYkJOEFHYfIQYkCkczHjgS+JODAxBTLF84NJJRgcwk1
k+DCDbOge0gGDgRBjQLvAp0JCzDHXM0NIaThwtM6n3NHCCOM0EoXYzzRBy0OcEALC0U4kAGg9cZM
Xy0RRFBIBRV84Ak3sxhCQQTj/HOIDGOIscQSfSz/UUYTu7AwStIxZ4OCGZpUUUXimphRBT3zKZAA
CyoqgAg1DiQwxZBlm12fDXTMMQsKswRjwBr0MdGEE5dkom4QUMhCiIS8em7fASHMEAKE1qDBQtBB
TIHFCxPWbjt9PGCQBx4TSuE8BzEaf7x84ORSjzkT7gHGHutEb+/0/2CCgxtHTMgEGi16D/58gjTi
hjATLhJLLE1KPz02B/Qww4RdSMA5jPY7ng0w0IM8TCgSdahD/b53vFrM4AjumIEB7eODQ0BiGWIQ
AxCY0AUfTINw2HJgG5IQAi5wgQc98MtlkqCNONCgBUOIIRpGQYgYxlACL4DEM+wTwE4BQAiwgAUO
/4Y4REvs4Ag84MEBcDCCCViAAspAxyimSMVRiMOGw7BGfXp4JkycgwBgtIQJxogBM2ghiRgY4zlG
4AULTIACyEiGOqQBCD3IQAV4VME80jefT0AgFIAMpCAHSchQRKMRiEQkHpLIAyLMQW6GMMQIKDBJ
CljyFJg8hTMAwck9lMEJYiBkPsqhg1Ka8pSoTKUO2mGEA4zRBBhgJA8K4IJX2vIAzEiHJHaJDG84
gBpqKIICNKDKubgFLsjcwAouYIQYAGMHBUDiLAtAzQIgARcxMIIHotACedgCAVQ4JjKPoQGpmFMo
7ZjEBRLhgXa6MxGJuMAkWrCCc0pFBz3Jpz73qf9PGGwAOwANqEADCgF8LOCgCE2oQhfK0IY69KEN
vQcMLELRilq0ogvQx0I2ytGOcpQdEMiHSEdKUpL6w6QlFelJVZpSlKZ0pf6IaT5iutJ8WKMfoMip
TnfKU3/o1Kc9zSlNaSrUoRoVqEgFhU+XqtNQqOITUI2qVKcK1aNW9RP+iGpWsarVo8a0ql+lKVa/
ClVQMBBC/qhPWu3j1ZjKZ63/gKtc30rXuPbxrGilD1zns9e1yrWtfH3rUe8qKMC6Na5GDWxd7YrY
tLrVsXDlooT2qtjF8hWwiG1sYuUjWbUqtq+CHWqEKOvXxjL2H53Vq2XnWtnQYtavjs0sZ/HK1s86
0pSumF0saeta2tnGCLaHZSxo8xpc3uo1srRd3/FSq9yYMbe593oudHu1pOkq9xMtza52t8vd7mY3
IAA7

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/navmenu02_05.gif

R0lGODlhQgBBAPcAAEKR5oSYq7zG0Rhq3quyt+ns8dLZ3u3y+OHl6VSNyTSY5tvb3Ou0TKOutdzh
5nqFjP/MOsLM2srS2cnR12XK9Nne5kOp6lqh6b7FyuPr8SFmszGM0zqg6HqfpLXN9OPm7kqt683V
3OXl5enp6UGDtJKco4Wrz/ykQWyw1N3j6JiokLa9wlCIufT1+LXR9Zurup282q/o+83U2rG4vZrR
9NDW287o9tjd40yx7FZ7rsXN1JukqarEqlykz9jd6iyK5EiA4+z1+avN8zd44eHh4YKMk2GcwUpm
hYer7QpW2uzv8qzCmV7E89vg5ens7j+m6dbc4YqUm+jr7pChuXe37pTE8dXb6XGZ6brR9LO+zMLG
yWiCmN3s9ebq757I8s7V4VBqh9Ta4OTo7MXM0ujr8bLI8wJL1qOxv/L09rvCxvHz9e/v7wtkr+3t
7dbc5MvT2ai0yOTo73Ocx9HY6IK476y5xsHK0fj4+OrVT/r6+uXo65+tvzZpm2R7lBFd2sjR3HaN
ot7j7HPV99/k6t7f4HR/hlS670+07dDT1B5TceLk57i/xABQn+bq7ZCYnV14k9HY3666y+rw9nbb
+QBNuGGv7Fq35vj5+sDJ16fL84aRmJa8pO/x82zR9rTK84m/8Pb4+FdwjWSS1RBfpQBOo/X19fHx
8f39/fz8/P7+/uLi4rHH8/b29vPz8+Pj4/Dw8Pz9/fr7/Ju38Ozu8Pv8/OXp742Yn5Wgp5+psJvK
6pGOkG3E5+7TULXY7YHf+rLE13iTsJvn/IudsODh45Cv7pW378/f7aGahouFh4i4pszJioKupt/k
7VrA8Uen6dLQZOPn7MnMz+7w9d/i5Pz9/uPn6+Pn7tnf5N/k52i84nuh6k9zjJilvB533W6HoTdx
zmuZuti+WuKYU/X29sPM07LM8q/N9MfP1uXo8JKktZinuDmG4wBKxrfe9wBQowNUtdrg652mrc3z
/Vew4ObMT+bBUObm5vLy8vT09Orq6vv7++7u7vf39/n5+UJCQv///yH5BAAAAAAALAAAAABCAEEA
AAj/APsJHEiwoMGDCBMqXMivocOHECNKnEixokV8GDNq3Mixo8ePIEOaGkmypMmTKFOqXMlyn8uX
MGPKnOlyDSc1nAqgCySFps+f+/IJHUq0qNGiI/Ip4cRJSQEytT4ECnS0qlWi9rJq3cq1q1ZFTqSI
QSBGSoGnXayR+aDIq9uuUAJsJUK3rt27eAlNq4YAyg0H2Kp1OaukxQFjaBzgXbx4mI5EW6bRvUe5
suXLltc4EQPlTQ0DUK6lQNBFjSQYLBgx4sLMVMZSsGOzms3q4TgENbJsS9QvT541wIMLHw68jSIp
NcidkxACUpgb1TKgZuSOEjtKcqR9IGm5lfdWr0vN/2oi40WfUJD63blDvL1wQjdmSbCjY4IMKG6m
k9KQgJgfM2aMcgA8a4zU3XcZtaKHAwIEcEQADa3XD2YUWkbIIrNcQ58AJrBAyn6iyLLKKtoAmMQ7
JqyFUWyy0TaLHtfssQUYOhDk2z845qjjjjg2ggs2s4whByMgijhiGWUAkUQSfvgxiiTwxMJjjrTM
4gQ5AYAhDBpTdullP/FgUAAUEXxj5IirlOGJB0M0OUAOfJjwARldosGJHmdscYQAXrLiZZcY4FLW
G1egmeaaHngwwJvinIDMKGj4IKWOtHDCT1xgeKPGn638OeUsO5DjBCRzFHpooi5gMUA33Zxwgi5s
wP/ATC06ogEKP3VsEYoEnv6DT688ztBAI2KEgcSpHqTqwjrdAHLCMQl0o4E0PlDzzylonOJAllsC
+yuwOkJxiwxOyOAJEmWg6oI5mQDwAwMMuLtBrD4oAcodl9TRRx9vgOurvzriQoAT2EBxRaIesOtF
FRd0AIEKCkS8gQZQaRtAKOoA/K/G/0RzCxROvIFFMQpXUYUyKIRTT8QctJxABnfU8QggYnD8rcaX
lDCDFNcggMTCVXzCAwREL9PyE0/kok8TgITyB8c43qzxIrc4IMUE5dDxCR1U8LLEEvRw8IQFOPRy
yRlHAONDAVBvzLETtqTRRRhSXEAFFTzgUQkIYoP/cIgNEjxCwgYkwOMDLFBLrTEBt5D1hhCVVILH
JiA4Y4Hf4HjDwjyWWMLGL1bQaXPbqdQQxRiNhDDLBZvg4QzSfs/TgxG0085CDllEgLjGivt7ij63
4MKXBC48k4zYZBvSDBMUZINC7Xykw83TvEP9ez8YaPKGGBLcswnyfi9PQSeClL8LCiwAw80ek/rb
e6/X87OGJg0saEAuT4CAAw7Kjy/IJJPwRQy4UIAIwCESFagewFKBijzcgRX4IIAmICGGc2TAb/oz
BPM6MYlgyCMIBYjDFwahBEz4QIHgYqADIXiPBRRhBmK4wTVoAILkMUEQMQiCGs4ClT+4YQ9ZmIM0
/wD2vi6p8IH4uMcr9rGDKFwDGjo4gOVwQAMb4EMK0AjBHyLwhS/cIAJBtMIJ3ee7PPSDhUtsgxaK
sAgEGKAJNGhHEBpxjSakQAACeEEA1JGFCkSgFn+wwhxaQEZ/6YMfpWiFKdbQhnyMIAq2cEAKyNGI
G4QANNeIhAAAEYAXqGMPkPgCJiLhgy/szlsa04ciGelIe8zgAWNAQAjqIwPn3CASL3hBOuqQhTBU
wAdSgQevCgkwVLyikSOwhwgI8YBbpKAJOjiHZwzghiwIQBi8lAECfGANazBDAjUgovXWMIIRiEAE
rojHA2QwCAksJwQCcAMcriEBSDShAvBARxfi0P+EeKCQY69QpitUgYgH4GIQbqClDvZwDkx8IQQV
qAUPb1CCafyTY6xApytc4YgHhCEQ55CmDGoQmtGU5Sxj0EQaRtc2HJ2iDRtdQSEIkAJLSqCWz3HA
IATTzwesAGqmQIVQh0rUohqVqHfIhyqK8IASrEAGDoiqJAcRhjSU4AFFqMFRt1rUBajiq2ANq1jH
OlYipCEKhUhrITQRhShoIq1YJYBXyUpXsS7gLXjNqz2iMQMC7MARjrgFAWaACL3qlRBXSaxiF8vY
orgCKJCNrGQna48KWfaymM2sZimTDxZ59rOgDa1oR0taz7bBIqhNrWpXu4+FuPa1sI3tK/RB29r/
2va2tvWHbv1RW97SlrfA7e1v9bHb3eLWt7jVxz1OwdzmOte5xfXHc5kr3VNId7fWpa52qzvd5nJ3
uq1IhXjHS97yjtcf5t2teNHL3vOuNxXoTW901UveIvJovrvNkT9wtN/87vcfxQVwdO/rJft66b87
0q2ABwxgHSG4wQ5W8JQM3KUH89fC/dVvhDWs4QzziMIXxq+CR4zfEPcXwSjmr4p3BGICu/i/MF5x
hj3c4AFbuMUJnhKMZ8xhD6eYwyuOGscsrGIfQ3jHRdZxgQGWXxdfWMAyDjKRiZwjHLf0yl2yMpa3
XGUuexlcWv4y1IbaKTGbWUfJTbOa18zmNrc5ASAAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/navmenu02_06.gif

R0lGODlhKwBBAMQAAO7u7vX19erq6vT09Pj4+PLy8ubm5vHx8fb29vPz8+fn5+vr6+/v7/Dw8OLi
4u3t7ejo6Ozs7Onp6eHh4ePj4+Xl5eTk5Pr6+vf39/n5+fz8/P39/fv7+/7+/v///wAAACH5BAAA
AAAALAAAAAArAEEAAAX/YCaOZJldKMqtWru9Xdx5dF1jeK7vOOETIhXHBZPZaoOkcrkMOJ0IRA+o
Ispmx4N2y+UWvoWEeADFUC9DTRFbA7jf8DiAQW80DmGylMpa2wSAgYKDC4UREQ9zd3l7J0N+NAaS
k5SVCpcQEBICCxGKYQEIfGobRh4TqKmqEw6trhQUFhUGChACiAwHCQNSjqQxNEIsLaQvpVcaGQMR
tbcADQW8GL7HMyPCacVrVxcAtQsPDNGiJy7AQdjExtumBAsKAuHjQI8y6errV1c2G97x4rwIoFED
7IjBgwg9dPD3oEGCANMuEGSTsOLBDgsgLABwIODAUhZDHtQgQUIEcRAz/9QTydIGAgMCOCYQheZF
y5seIkA4WSDlI5wtMcDkyKvcBqAsOwiQ0HCmQDVIWTbYiVIgh6NRQwZQsADltCFZQ2YY2vGrhrAW
N5AdYBZtxQ4V4pVVedYtQrVy2dK1i5DD2rZ8DQrdOBds4CMJuHpVifVwjQc7HQaw2tgxh00PdNGE
6phG4o3RzFYOvEFT08l0R/NtwJXoZpCOEShgKlk0RbsZZvP0uDJwBgkaZZKrdzsshkwba1MriJYD
g9nJe5r5aCprhgOXnEmm+eiYB2LgwxMxlgFBA+DQw+kKRe8XMFfw47+KJYuWpnjPQJmhOxFLpf+0
XILJfZ2Ec8cuewzUX6ANgzRYyIOdIKIIHruw50t/bMih4Rx0MGAHhRU28lE1FIFh4oknjkFGKGaM
4h5zNDwh44wzRiFFiyeg0R2JgvHgY4s+XKPjePscZMKRKSS5QjbG6JPQklBGCaV4+ThZ0TpYZpml
PtVZxOWXYBbZ2ZhZwUjmmTaYiWaaXa7JpppuKgRnnHSiGaaYpGmJJVDi9ekneEBJKeigUAZK6KGI
JhoCADs=

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/search_title01.gif

R0lGODlh2gIoAPegAPv9/huoyfn9/hCTwCGyzQyLvgqJvPn+/hihxhWdxTbb3i3H1hOZwxqlyBOb
xBeexQ+QwDrh3jvi3ez1+vz+/sbo8Q6Pvz7j3e32+j/j2gmGvDLS2rPX6Tje3y3J1y/O2YTm6iO2
zyGMwBupyc329wyNv8T29SGOwSCwzUTP2wV+uXfQ4QmIvAeCurLX6TPT2zLT2z/j2z7B1fD8/Ryn
yD7i22iy1O75+xKawxGUwTzh3brk70jV3k/H2SW60Z/X5ye90SOQwSvE1TTY3QmFun/e5xumyGex
1HzZ5EHI2R6tyyGzzkne4TS30sjr8rfg7WDo5RSbxLPZ6rTb6zfd3rfe7BCVwSe80jTX3DTW3CCw
zBadxBacxA2OvgmFu8Dw8wR+uBCTwSjA003l4BGVwjfb3vD8/CzI1gyNvii90gqKvc739y3J1mq1
1p3T5Tfc37zp8O74+wV9uBScxCSSwy6qzMvw9ULm2rXc68rv9CW60AmGuye90jvg3RSaxK/z8jDR
2huIvcL09UGuz5jI4QeCuSe/0iKzzQ6QwCGVwwaBusP19T/k3Tri3yvE1EzB1zvg3B6syj3i27nk
7hKYw7LW6RyJvRmixzHR2giFu2av08nt8yWdxwaAugaBuQ+SwP///wAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKAALAAAAADaAigA
AAj/AEEJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuX
MGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOK
HUu2rNmzaNOqXcu2rdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHsx3hiAQPFIggXODsOPHkCPLpGBi
TJ8OWD448tFkBwDJoEOLHm2Rwp8LMSQ1KrNhARACAX58Jk27tu3Ri3RkuJNBwhsYbNIsCZCgyu3j
yJP3NcMEUg1GFyIo2HCGD+wtnDAo3869O9svWTpE/5AAZc2BA3Z6aGng4NMU7/Djy+daBNAQBVRI
ENwUCQElC23MJ+CABDKVhAcfYPLCAQQJEMADVhRAR4EUVmghTzKIIcQCHgjQIAIMIGJAEBeWaOKJ
LK0Qgh5XGJIHQRX4EUYBmRyB4o045sjRJEqgQMAhjzghgAAVDJJDFxp04oKOTDbpJENx1GFEACPQ
0MAlDzAwQAkstGDJBE+GKeaTTzgwRwJcRIEDGRAUoIEiYHAw5px0ogiAGwPkCYEFaBhAhCdyEDJb
nYQWOiAAeCSihgF7eFGICoFwMKihlFbaHQZS2HCCCJpUAqaloIYq6qiklmrqqaimquqqrLbq6quw
xiMq66y01mrrrbjmquuuvPbq66/ABivssMQWa+yxyCarrIUBAQA7

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/body03.gif

R0lGODlh2gIFAMQRAN7WwOrm2KyaZbSkdLCfbNfPtvDs4cW4k/Px6L6whu/r3+vn2sCyit3Vvr+x
iKuZY/j28P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA
ABEALAAAAADaAgUAAAWGYBQFx/CcaKqubOu+cCzPdG3feK7vfO//wKBwSCwaj8ik0jY4BESRQgJg
gFiv2Kx2y+16v+CweEwum8/otHrNbrvf8Lh8Tq/b7/h82QBIFEYCCnqDhIWGh4iJiouMjY6PkI0K
AgsOAJGYmZqbnJ2en6ChomwNDAQIo6mqq6ytrq+wsXMIBCEAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/b1_off.gif

R0lGODlhSAAcANUvAPf39/X19fb29vn5+ePZnLufCc25S/39+buhDP7+/M28XLyiD93PhNTCY/v5
8O3lvcq0P8q2QuHas+vq49bHb9DAaPf04/r479nLeMy4SOzr5Onm1tbGbM+/ZdnJdfLy8vPz8/r6
+vz8/PDw8Pj4+PT09Pv7++7u7v7+/u/v7/Hx8f39/bicAP///zMzM////wAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAC8ALAAAAABIABwAAAb/wNeL
EFmwjsikcslsOp/MRYQgTBgaD0dry+16v+CweAx2PBqGA4ODarvf8Lh8Tq/b2xRMwXLv+/9+FwUs
K4WGh4iJiouMjY6HR4+Sk5SVRyKYmZqbnJ2en6ChmkcmpaanqKmqq6ytrqekri6zpbMuqbastCa7
q72uRyHCw8O2LiHGxMSzy8fFzsa2ysjM08pHA9na2rPcLtvZ0eLdA+Lh3+De5+nZRyTv8PDj8fSz
9PXjLvj59vfu9+/s8YuXT56xgP3wGQQI7wiAhxAhzgJgjKKLiBYvStT4cFxGjh01TsQY8YiAkyhR
jhMwKyU/Fy5tnWyZMiZLmDVrHgnAs2fP5Vk/XQQAyhMo0aJCg770ifQo055HSkidOnVWVRclrFLN
Oo6qMalat3rFKnZr1LJcwZINe3XsWKvR0H5FK/UIiLt48c66uxdEX70u8voNDJivrcGCDw8mLPju
kQ+QI0OeNdlFZMqXLWfGXPkDZcyfbUmurHn0ERWoU6tezbq169ewY6s+Lbu27du3j4zYzbu379/A
gwsfTrz3kRTIkytfzry58+fQoytnUWCD9OvYs2PXUIBBhxPgw4sfT768+fPo04Ov4MGKAgkT1Muf
T9/8BAkKMhwQQgACAigABigggAhAQMULQQAAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/b2_none.gif

R0lGODlhSAAcANUiANDQ0L++v+Xl5e3t7c3NzcHAwcC/wM7Nzt/f3+Pi4+7u7tfW19DP0NrZ2tzc
3NTT1NPS09nY2fDw8Nvb2/z8/Pv7++/v7/Hx8fPz8/n5+fb29vT09Pj4+P39/f7+/r28vbW1tf//
/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACIALAAAAABIABwAAAb/QJFI
cCh8jsikcslsOp/MwkEg9AAWikpoy+16v+CweAyuKBaADiJCbrvfcG7DEeDE7/h7JfDJ+/9jR4CD
hCGChYh4h4mMbotfIJFekSBwkpaVXJdgj5OZlJtjoKOhYKSkXp1dqHebpaaVkrKZqX2wIaevq7mg
brO4tFyqW72uwWGlup68x0cez9DRkR6n0dbQvNfX09SU3dfO2t2g4uXc2CDl6KTf1uHb6czq4+zz
3OTn0Ecd/P38zJT8CRQYaaDBfrk6FBS476C/hAcBLowIQmHFghP7HaHAsSNHiSA8ihQZaaTJjiVz
jTxSoaXLlqReUnpJk2akmjhd5spZ4UiGhJ9AgwodSrSo0aNIgx7hwLSp06dQo0qdSrWq0yMasmrd
yrWr169gw4rdemSD2bNo06pdy7at27doPwQYgKGu3bt48+rdy7ev37oSAiCAcKGw4cOIEytezLix
48IPJlgBkGCAhcuYM2vezLmz58+cByQAwKCDEAEEDEBZzbr1agMEqIgIAgA7

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/b3_off.gif

R0lGODlhSAAcANU8APr6+vLy8vf39/X19ciyO8axOcawOcexOseyOsWwOePZnLufCc25S8OtMMav
M7uhDPv58P39+cq0P8q2QsizPO3lvc28XLyiD+vq48WwON3PhMaxOtTCY+Has8eyO8izO/7+/Pf0
49bGbM+/Zezr5NbHb9DAaPr47+nm1sy4SNnJddnLePPz8/b29vn5+fz8/PDw8Pj4+PT09LicAPv7
++7u7v7+/u/v7/Hx8f39/f///zMzM////wAAAAAAAAAAACH5BAEAADwALAAAAABIABwAAAb/QB5P
MbnMjsikcslsOp/My0QhBDE4FYhuy+16v+CweAyGVDiMiEZka7vf8Lh8Tq/b26XVInTv+/9+JwsO
OYWGh4iJiouMjY6HDhSPk5SVlhQfL5qbnJ2en6ChoqOcHwQ0qKmqq6ytrq+wsaoEp687O6i3sLq2
uLm+vb+utADFxse3xbfLyccAy87Gzc/TyszX1cYEHi7d3t7Y3bff5OMu5uI76efq5ODt7t8eCDH1
9vbYy/cx+df8/frqAQy4DwG9fQKZJdyB8B8+hvsU3ruVsKJFhAgOCNjIkWM+Acw6gtyx8ZbIZSOv
lSQ5sqVIkQcOtJhJkyazmbdq6syZc+fA95rYdAptcWDDgKNIkQ68lfQos6ZP8zV1uoPqVKQbCsjY
ypUrs623uooFu2PsVxlhw3odOHZrAa1t0S6TO7ftWbFqr8WVu5drAQMsAgsWfCswMxaFBy8znJjw
DsSPrzlmDHmwZQMGAmjevPlWAM+eP+8QHZrzss6nQ6seTVpzac4BDCTAQbu27du4c+vezbu37QSz
fQsfTpx4ggwwkitfzry58+fQo0tfnqHBjevYs2vfzr279+/gszdYgCK8+fPoz5NYoGFEjffw48uf
T7++/fv435tQYcVCBwz5BSjggPVh0IEFKUQghAISPADFgxBG+OADElDBQxAAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/b4_off.gif

R0lGODlhSAAcANU8APn5+fLy8vb29vf398iyO8awOcaxOceyOsexOsWwOePZnLufCc25S8OtMMav
M/7+/LuhDMizPOHas93PhMaxOuvq48eyO828XMq0P8WwOLyiD8izO9TCY8q2Qu3lvf39+fv58M+/
ZdnLeOnm1tbHb8y4SPf049DAaNbGbNnJdezr5Pr47/X19fr6+vPz8/z8/PDw8Pj4+PT09Pv7+7ic
AO7u7v7+/u/v7/Hx8f39/f///zMzM////wAAAAAAAAAAACH5BAEAADwALAAAAABIABwAAAb/QB5P
0dHQjsikcslsOp9MTUchfDA4HpBuy+16v+CweAwGeTiMzwRla7vf8Lh8Tq/b2yTRwnTv+/9+KwsO
OYWGh4iJiouMjY6HDhGPk5SVlhEbL5qbnJ2en6ChoqOcGwQzqKmqq6ytrq+wsaoEp647t7i5t627
rL0zu7+qvcKstC3Iycm3ys3OyMzP0czRLbrX1coEFgDd3t7XALng2Ljf37fiO+fd6ers3xYHMfT1
9bcx+PT6+zv3/vkA8gtI0F6/XAYNHpiX8GA5gQAL8tNHEVfDgQ1jHEAwoKNHjw9vgQz5saPIkh9J
ohyAAIGAlzBh6hJw7eUtmTts5sRJsybP9Z46Y8ZEQIGF0aNHb7FQapQp0qQ7nkJdGrVpVavlpBql
YECG169fb4EVCzYsrrJmvZKVsbZsW7ReDXSFy3ZH3bpn3dqlS3Zt35Bv4xZwQbhw4VsuECM2fDgX
48Q7Gut6THgx5cIFCgTYzHkz4FsBcnG+FnrHaNOeUXdOvbp1gAIJcMieTbu27du4c+veTTtBbN7A
gwsXniADjOPIkytfzry58+fQk2docKO69evYs2vfzr279+sNFoz4Tr68+fIqFkwIUaO9+/fw48uf
T7++/fYnUli5IKHC/f8ABjhfBRJcUMIHQiiAAQRQNOjggw1CgAEVPAQBADs=

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/b5_none.gif

R0lGODlhSAAcANUiAPz8/NDQ0L++v+Xl5e3t7cC/wN/f3+7u7sHAwc3NzePi49fW187Nztvb2/Dw
8Nzc3NTT1NPS09nY2dDP0NrZ2vv7++/v7/Hx8fPz8/n5+fb29vT09Pj4+P39/f7+/r28vbW1tf//
/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACIALAAAAABIABwAAAb/QJFo
wEB8jsikcslsOp9MBGMg9AQWh0poy+16v+CweAyuHBaBjkFCbrvfcC7lIeDE7/h7RfDJ+/9jR4CD
hCGChYh4h4mMbothIJGRW5OUkiAhl5Vdm2SdYI9gk5qVo5ilmF6SkKSpYaFfppZcmpm1nKeuYp9f
sJaks7Oytri0usTBvFu+xcC/ppfGrbjQq6AfHtna26TZkdrd3+Lf297k45Ie5OUeR+zcmubgl+rx
5q3w8/Lv7u/16OnutVrHjmC9f+P8HenAsGHDSx0iMZQ4caAkhw4pZrxICmPDhR4jghBJsqRIiyMf
QvRI8aJJjEcAyJxJE0Akm5pm3sS5cydNqEk1ZaIEEVTmkQpIkyqtEIkpCKRNoV5yOnWp1KdKoy7V
uvRIhq9gw4odS7as2bNowx7hwLat27dw48qdS7eu2yMa8urdy7ev37+AAwvee2SD4cOIEytezLix
48eIPwgggKGy5cuYM2vezLmz58oOBBiIcKG06dOoU6tezbq169IQGlgJoICAhdu4c+vezbu379+8
CSgIMKGDkAEJCkBZzrz58gIJqIgIAgA7

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/b6_none.gif

R0lGODlhSAAcANUiANDQ0L++v+Xl5e3t7c3NzcHAwcC/wM7Nzt/f3+Pi4+7u7tfW19DP0NrZ2tzc
3NTT1NPS09nY2fDw8Nvb2/v7+/z8/O/v7/Hx8fPz8/n5+fb29vT09Pj4+P39/f7+/r28vbW1tf//
/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACIALAAAAABIABwAAAb/QJFI
cCh8jsikcslsOp/MwkEg9AAWCkpoy+16v+CweAymKBaADiJCbrvfcG7DEeDE7/g7JfDJ+/9jR4CD
hCGChYh4h4mMbothIJGRW5OUkiAhl5WWXpuZmHCPYJOalaSYpqiqn5ddpZpgol+nnJaSrLe4p5u0
n75fsrawv769vMepsL1ewa6qrcLPt6/DutOeXEce29zdpduR3N/h4eIg5uUe1Ofd7drt3prg7OqX
9fbo5/j31PDb7/7sfZu3Tl9Beuv8cTvSoaFDh5c6RGo4keLBhxUlSoKoSWPGhx0YgrSosaRJj+sw
ggCZsSK1kSE/VJhJs2aFSDc10cSZkyfPqZw2gQoF+jNohSMUkipdSiFSUxBJnUa99JTqU6ZWnVKV
ylTpkQxgw4odS7as2bNo04o9wqGt27dw48qdS7eu3bdHNOjdy7ev37+AAwsezPfIhsOIEytezLix
48eQE38IMACD5cuYM2vezLmz58+WJQRAAOGC6dOoU6tezbq169emH0ywAiDBAAu4c+vezbu379/A
ew9IAIBBByECCBiAwry5c+YGCFAREQQAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/b7_none.gif

R0lGODlhSAAcANUiAPz8/NDQ0L++v+Xl5e3t7cC/wN/f3+7u7sHAwc3NzePi49fW187Nztvb2/Dw
8Nzc3NTT1NPS09nY2dDP0NrZ2vv7++/v7/Hx8fPz8/n5+fb29vT09Pj4+P39/f7+/r28vbW1tf//
/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACIALAAAAABIABwAAAb/QJFo
wEB8jsikcslsOp9MBGMg9AQWh0poy+16v+CweAyuHBaBjkFCbrvfcC7lIeDE7/h7RfDJ+/9jR4CD
hCGChYh4h4mMbothICBekWCUYpSWX5mRnGGPk51bnJKipCGWmaemmKaqXKlgn12jtJu1tK+3oaq6
rVyypa6lqLDBw8azuMSxfZW9qb25xMXPnh8e2NnaHpHZo9veIODf3eXi2OTn4NlH6+jP2t3c6tu0
8/Lvvevt7unf4fk4xfuHTx++bUc6KFy4cFSHWgwjKZTIsCGIhxcxVuxVkWHCjhM5aRwZ8iLFjhJP
nsSoC2SHIwBiypR5K2YkmiAAjJo58+bOp5s4c/7MyRPAkQpIkyqtECnpKKRNndaSyhSE0qZPaS1d
eiSD169gw4odS7as2bNgj3BYy7at27dw48qdS7ftEQ148+rdy7ev37+AA+s9sqGw4cOIEytezLix
48MfBBDAQLmy5cuYM2vezLkzZQcCDES4QLq06dOoU6tezbo1aQgNrARQQMCC7du4c+vezbu3790E
FASY0EHIgAQFoChfzlx5gQRURAQBADs=

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/b8_none.gif

R0lGODlhSAAcANUiAPz8/Pv7+9DQ0OXl5b++v+3t7e7u7sHAwcC/wN/f387Nzs3NzdfW1+Pi49TT
1NrZ2tvb2/Dw8NnY2dDP0NPS09zc3O/v7/Hx8fPz8/n5+fb29vT09Pj4+P39/f7+/r28vbW1tf//
/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACIALAAAAABIABwAAAb/QJFo
oDh8jsikcslsOp/Mg2Ig9AgYhkBoy+16v+CweAwOGBiCTkJCbrvfcO6jQuDE7/h7gPDJ+/9jR4CD
hCGChYh4h4mMboteIJGRIZOUIFySmZmYl5xglaCdX49dk6adlZafoqpbqaWomqxcpJ6brqKyml+6
rKG4YbW4p7LAxrCQs723o32ru8fLqa+vnq3VtB8e29zbmR7fkdyy4JLd5+Li5dLn3Eft3iDr8t/x
y+j38frl8B7v8OnM1eOXj5/BdgI19TvSoaHDhrocRpIoqUMmiyAgZtSI8SHGiRc9OmQo8mPGiRw1
RkTJcmPHlCorijwCoKbNmpFs5sQJQmdPr545g/7cqQnATp5GJd20eSSA06dOIz2VmikqiADLrGLV
pHWqJKtSoTo9kqGs2bNo06pdy7at27NHOMidS7eu3bt48+rdS/eIhr+AAwseTLiw4cOIAx/ZwLix
48eQI0ueTLmy4w8ECmDYzLmz58+gQ4seTXpzBAIJKFxYzbq169ewY8ueTXu1AwhWBDQoYKG379/A
gwsfTry48AINBEzoIGTAAgRQokufHh3BAioiggAAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/body04.gif

R0lGODlh2gIFAMQTAOrm2N7WwLOjcqyaZfHt48W4k9fPtr6whu/r37+xiPTy6cCyirCfbPPx6Ovn
2t3Vvq+eaquZY/j28P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA
ABMALAAAAADaAgUAAAWGINNIZGmeaKqubOu+cCzPdG3feK7vfO//wKBwSCwajzkFJBFAOp/QqHRK
rVqv2Kx2q30sAAMEd0wum8/otHrNbuMQA8fEcAgQ3Pi8fs/v+/+AOwQBBwYThwAFAhGMjY6PkJGS
k5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+bAgUAhyEAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/icon005.gif

R0lGODlhEAAQAOZYANbW1vT09Li4uM/Pz9/f3/Hx8e/v7/j4+NnZ2c7OzqSkpO7u7snJycjIyNzc
3PPz86CgoGBgYH9/f76+vuzs7JiYmMrKyvr6+o6OjsLCwoaGhvb29rLFmD9bD9jeztvb24iIiGiH
Pdnf0LGxsW1tbdvj0MLSqoOlUq6urnmaRdLaxn5+ftHR0b3No4imVpycnGV/PaampnZ2dnecRKC6
dJ+fn3p6emF+NeTk5E9tIVJvJURiErvFquDg4Ojo6KmpqX19feHh4dbeytDQ0EZjF9jY2MfHx7jJ
nll4K2uPNmxsbN3d3ZKwY9fezZOTk4ODg1+FKW+QRfDw8N7e3u3t7dfX1+bm5szMzP///wAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5
BAEAAFgALAAAAAAQABAAAAetgFiCBAIKCgIEgoqKBhmIBQWEGQGLghNXAVYICFYBRhOVACMPAFcW
FldFDzEAixAfOEMDswMsPg4QiysFDlW+v0tUT4syBT1TyMlBBjaLGAALVtLTUgAYiw1OBwtU3VQG
GyANlTUoFwcBAQcXPyQVlVQvEgwUFAwSSkAmUSWVCRoRImhIUMEFjRYhhFRaiCQFkyM3VCxc5CFH
khMcdExc1IQIlBkwNi4S0WEHj0AAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/body01.gif

R0lGODlh2gIjALMAAOno6PPz8/Dw8NPT0/39/fv7+/n5+fX19fb29vHx8ff39/j4+PLy8vT09MzM
zAAAACwAAAAA2gIjAAAE/9C0MZy9OOvNu/9gKI5kaZ5oqq5s675wLM90bd94jg6NwTiABWFILBqP
yKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4TC6bqQWAgzEAEAqGuHxOr9vv+Lx+z+/7/4CBgoOEhYaH
iImKi4yNjo+QkZKTlIIFBAAVBXCVnZ6foKGio6SlpqeoqaqmmxYEC7CxsrO0tba3uLm6u7y9vr/A
wcLDxMXGx8jJysvMzc7P0NHS08UErtTY2drb3N3e3+Dh4uPk5eTWDq/m6+zt7u/w8fLz9PXV1/b5
+vv8/f7/AAMyQ0dAgcGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIP9DihxJsqTJkyhTbiSo
sqXLlzBjypxJs6bNmzhz6szJcqfPn0CDCh1KtKjRo0hXukrKtKnTp1CjSp1KdSRBBFizat3KtavX
r2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3b9irfv4ADCx5MuLDhw4gTK17MWLHfxpAj
S55MubLly5gza2aLrsCBz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDC6dd
wILn4ciTK1/OvLnz59CjS59Ovfr04g6OW9/Ovbv37+DDix9Pvvxs7AUaqF/Pvr379/Djy59Pv779
+/jz69/Pv7///wAGKOD/gAQWaOCBCCao4IIMNvgfeg5GKOGEFFZo4YUYZqjhhhx26GGHEH4o4ogk
lmjiiSimqOKKLD5oXIswxijjjDTWaOONOB4YYo489ujjj0AGKeSQ9e1I5JFIJqnkkkw26WJ2AUQp
5ZRUVmnllVhmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdJqJHgN45qnnnnz26eef
gAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aaN3snpp6CGKuqopJZq6qmopqrqqqyq
6mmrsMYq66y01mrrrbjmqiujr+7q66/ABivssMQWa6yk6CWg7LLMNuvswbPQRivttNRWa+212Gar
7bbcduvtt+CGK+645JZr7rnopqvuuuy2+22y7sYr77z01mvvvfjmq+++/PbrL7/w/ivwwAQXbPDB
CCes8MIMextwwxBHLPHEFFds8cUYk4ueABx37PHHIIcs8sgkl2zyySinrPLKLLfs8sswxyzzzDTX
bPPNOOes88489+zzzzGjt8nQRBdt9NFIJ6300kw37fTTUEct9dRUV2311VhnrfXWXHft9ddghy32
2GSXnbUDEQAAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/body02.gif

R0lGODlh2gIFAIAAAMzMzP///yH5BAAAAAAALAAAAADaAgUAAAJeRI6py+0Po5y02ouz3rz7D4bi
SJbmiaaqBxjrC8fyTNf2jef6zvNtDwwKh8Si8YhMKj+/pfMJjUqn1Kq11Mpqt9yu9wsOi8fksvmM
TqvX7Lb7DY/L5/S6/Y7P6/fzAgA7

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/footer_logo.gif

R0lGODlhjAA8ANUxAEC43kCTrYC3yRCm1oDQ6YyMjNnZ2b/b5O/5/LOzs7/n9PX19WDE5CCs2ezs
7MXFxc/t99/t8WClu3DK5qCgoBB4mZ/b7uLi4jCy24ODg7y8vDCKp9/z+c/Pz4/V7Hl5ee/2+Kmp
qXCuwnBwcJaWlmZmZs/k6q/S3Z/J1iCBoK/h8VC+4VCctI/AzwBvkgCg0////////wAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADEALAAAAACMADwAAAb/wJhw
SCwaj8ikcslsOp/QaBMmHVKr2KxWCut6kd5uNCxOkrfotJIcLrKv0/fxXVbb0/R6zItgM/lnRHl6
d4VcXRgDDH1fe10QAIyBc10cLw0egzAcEwCZbYahUF4vpRiSQl4MLxgccpQwq6UMeQSlpqiiun9d
ALcYbV6+L4oWCpOCXQ23L59ksswAoLvURl4TzARvy8yz01Zd3QN9CA0qMArdtxaN1e6pXRbMA2zp
6qXshI4w6uzYLyow3LvU7l01LxC6HUM4YCCwgvBgCGRGy5e0f/cgQDSoixSzfAg8NLy3aOO+Fd0a
8HvBDsFEdQvhcNzl8VYfCCPVDTj3DRwM/1vdPAhkVE5nrpk0w92iBSPhPQCuevoEymwFAJXX1PGU
iTRUmHk8MZba+cqNMHUA0oYR+0Kaya5qwiDox2eiB05pJ/QMo+LeBAxue3WLyhVu3Gf3oqK8pI4p
HDI47wkdsMzcMG9vDWeB/FIhDA/ENNpjplEMGQs5FeoknVnzoTAiB7ZsqLcLtFKlqYShitZWg8vR
WrseFYYD8G615bX1whur7i4uB5ZS0VAab3xSh4/Znbrbw5+3AJzjXfs5eOkD/rltsJiYH+1YEHa+
F/P6gM7aTHdhmzL8pglzYYYMfE+cJd1yqhz4Qn7mXUcSgjAoB1Al+ehD4BJecNBdN1tZcv/LCu3d
wuA+0Um3gi1uSeicL+XdAYJBYUS2FDRhAKcNB/g1wgcD3KjDAYoR3jJAaVRtxEIALbw4hAtMbhBB
EhJUEIAALwrQ5AlJCBAACkKYcIQJWJrlhQJk9jFRYAwM0F5+Nur4hoelaIOihCzFw8xGJzApARFM
uiCCEAccUYGeVTIZgBAihElEAC5U0EIMAVQgggCUUjpoAEr6RMZobqUJAVW/edBmHW+I1YctqT3k
VCmBHdFkpn0KEIMELnBJxAGGRkApoy6kIAALTLKgZAQguLDBAV7yamsLuPaaqaYGtmXckOdJN2Iy
0OXElIPsUCdkbkeIUAEKAhxgbp8StBD/66IuSJCplS4cCm8KT8aAQqO6+rmBnk62a6gZY87T0EJU
panOtZreRmRKQTLjDFcH1BuBCOY2227FEQ9xgJQioFAvvPI2ucEQ+1YwqMlMWilBv/ECrAxjtzhD
lQIyilhQGKMR1MV1FlznHFcg7LsBCBIouu4RAkRAa6OT8uorr1LWu3SjJvB6AgsbqPsvGF2A1gBG
gVV7zHUIk9jjC+U1N4wiy7RqRJ5+ugBryjGAEICiQwzqQpggx9D3EFU3yiWvB+wrQbOHwoJAQ7GV
Qli1EJRoM6lehDjhzjoRgICHbhcRQZ8jL0n30rYCqucQff89RAAbmHDkvi5A6gKVW1uD//kAOYVd
LQFnlxKTTzn7nhXMA0Sl3lsoiOBnpcAaKkIA0AdQ76xU66olk08HO0TyxgaQQp+xMyrA9y3bDsPi
aJHhoGdlhNH7CzH5orks6cnomIW0BioE+RVMX4QJfVJU3yJwAlkNYWqzAx+jfKU6bIEmfbtR0O/2
0ReYnGUhD+wGg77xudgJoYN7i4H/Vqc3/fntX0Frl5JQkAKrtQB2Vkpc7bD1EmjojiqK4B0zYkKG
DO4wQTHx1jwm8Lg6ACtxMdDan2JwgBTgLQKBc8EBKuW0SlFKSUGDXQWul0AZlk9MAhkAO/wTBvqV
Bjg8jJGQuFEf+MFmICtIYwyUN7shAP8rdEJg1J7YJUXU1U4CBhQh+AYJLxdoDYnYgsBdlAKh8zWE
WoKJGQEIkBsvCAQqw5CELxZiHAUBoJKy+xMINlYrcglAAuRbYh6ZhIKKLe1YB9DaHi0WL/Ddy1Az
hFZNAoOAYWCAAGnZUHgkESE2lSIMA0OAg4QJSSp8r3+DxJ4AblkBPp7AlU3CGLKEcC+9KU9vMTCB
uQD4RTF9hVXxeJ+CXnC/Gh2zC/aYwPsAhAAL9C4wxWJSE8HHgjCR0wXTI5wfy0mE8dExULwSAgha
0EDzMRIAExDmOt/JhmEMTydb6VpOnPPPA9DKVyM8GR9N2NADmgBeCGUS4PSGSK6tpC3/dNJJWoIp
DmKehR4vU8cKbAodCwikRbTaU/KQUDW88cpLQrCSpJSAUtl5UAhLC6TLRkKLVQBmAgQoEx0UaZWt
RMQXK/BC7wbwME1Y6AnP+mATIrDNGFzTf2wdoUtlkUaz5uGrdYInRWyqS+FcyGUcaEA77UoHn9ST
DBFlQBEL856/VoGwZ23sPiDr2KQMaAt+KGxlqXFZPFAOIgu4gBAMUIDKhnazWSDtaEvrWNVqgQQL
iIEBKCAECjggAQaIwQIKEFsNdMABtI2BBjSgWxIc4QEJIEEIhBCCAmRguUK4QAGcK9oYZGAEy3Xt
AiiQgenGFre65a1wO3CEC3RXvDF4/8B00RuCEIygBA8IQQkyEFsjXHe54N1tb8m7BAqQlwIlcMAC
PpDe5T4AvtZ1QAw+ENsPELgDwS1CcofwAOPGgAQPEMIHRHsBAsuWta7VQHBDQNz4phfBGVCwETac
Xto6gMHCDW4BYHuBEhCXBMQ1gmtNfOAMp5gJD6DtCCjwgCDH4MUXpoBtPUxk86aYyEdIQAKGQAL+
dqC05h1CBnLrWtceGbkFmDKSSaBkJBshy0TQAHQXUAIhFCC3MWhzDKR8BNeOucweXsKAO1BlMvM3
AxcYwQJGYOIYQJjEJIaxEejsZjir1stv/vBqhdCBDDxgtlO2bqAHXegieFkIjI5zo/eFIOdQE8HL
gBY0oaHLhOlmeAR5TkABaOtcOC/4Aw4wQHeHsIAE1DfUJBaCmnU7giEIWtLIjvScMy1rWm95CB3g
rwOK/WVDWxjNyi51pntdXy83Owa1doIGShBbElg4BjUmrwaoLQQSZEAII8ixcG0M6kwf+QPRxjVz
KTBb6HaYy6xNrgESMIJMp1u47I7BCNgdAn4X4M8a0DV/s11vYdMb3R+A88HX/YTTHlnFoxWCx4Xg
ABVfoL4hJznIjzzclXcgAfwVAnJ1W930JuABJR8CnEf+cSIg19YLQG7NT57ynKdc5vbeec1Ry/Sm
O/3pUI+61KfehCAAADs=

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/footer_line.gif

R0lGODlhAgA8AJECAP///8/V3f///wAAACH5BAEAAAIALAAAAAACADwAAAIQlI8WsM3vIpyy0msz
3jalAgA7

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/icon001.gif

R0lGODlhEAAQAKIEAOzs7NLR0f///5mZmf///wAAAAAAAAAAACH5BAEAAAQALAAAAAAQABAAAAM5
SLrc/jC2Qauli4rNOyYDMHSeqIQiKaDDCbwjh5rgK14AQbNB77c7kW8YCLVAAyLxg7xcJNColJEA
ADs=

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/fun003.gif

R0lGODlhVQAcAOZkAPn5+fLy8vf39/b29qqqqt3u/9nZ2Xd3d8zMzDMzM7u7u2aZzMiyO/X6/+fz
/5nM/6KiorufCcaxOcawOb29vceyOsexOsWwOeHh4YCy5Z+fn+PZnM25S+np6XKi0caxOsizPOHa
s/v58MvLy4CAgJGRkcq0P8izO828XMWwOKqzu6Cnrf7+/LuhDIaGhryiD8eyO4Su2ZeXl4yz2bPZ
/5GVmd3PhMavM5a74Mzm/9TCY8OtMIqKin9/f9HR0Zubm8q2QkREROvq4/39+aLE5u3lvff049nJ
dcy4SPr478Lg/9bGbOzr5M+/ZY/C9dbHb9nLeNDAaOnm1qPR//X19fPz8/r6+vz8/PDw8PT09Pj4
+PHx8fv7+7icAO7u7v7+/u/v7/39/UtLS////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5
BAEAAGQALAAAAABVABwAAAf/gGRkG0AvXYeIiYqLjI2Oj5COL0AbgiwcOkUiY5ydnp+goaKjpKWj
IkU6HEM2S1+vsLGys7S1tre4ubBPUBFGusDBwsOzSRE3YcnKy8zNzs/Q0dLTzDcg1NjZ2tvPICdX
4OHiNFM0Sjk5D+Lr7O3u7/Dx7CcMXPb3+E6fDwv4/v8AAwocSNAfg3oCMzRYuPDBmH4FI0qcKPCg
lYsYM3pwwJFjhgUgM4q8KGZkxpIkT4pZufKkSpMwGcAAQLOmzQUFcurMucCmT5pifgJlSTRoTaNA
kwJYeZSoUJowKmiZSnUqBQIHSNRYoULFihokDhCgUFVL0bNlzaadKqZqW7Vw/9lSfbu2gtS0FEZ4
cUGgr9++LryMILuWbtqzhovCfZt47tqpFSwImExZAIQOHX4o2Mx5848EHSBUrlx0NGUxpgWgVj15
tWuWrFunnmzBwoDbuAdowICBAILfwH8T4K0hN24xuZHfRkx0APLny6M7T37ceG4LH6ho305FhoHv
4MOHl8F9+0rtYsqjN6/+/Hoq6eFzjy9fvfYPErLo35+lhI+/APrlQwn86SeGgVkcuB9zLPGnYIII
Qgjhgw8WmIUE+VnIAwJYHeDhhx/6xoOFFFqY4FkFVriggSsh2KCJF05QxYw0VgFBX0EkoOOOOgbR
FwQ1ViHGjCsJOWSNR9KYpMmQQSppJJJNRjnBBAFUaWWVGvTgUCgP9KDBlQGIEaaYV65kJWJnglkl
S2qG2aaaE1ywxZx01pnBTjtlUOeefPbp55+ABkrnBXL+OYMHMeBABBE4xODBDIJGKumkf16QAhaY
Zqrpppx26umnoIYq6qYp7ADGqaimquqqrLbq6quwxqrqDhFIIeutuOaq66pMRGBDE14EK+ywxBZr
7LHIJqvsssJGccQlKIQgBLPUVmvttUKEgAISQwiygQktRCLuuOSWq0gLJlRCRiAAOw==

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.rootlaw.com.tw/images/fun002.gif

R0lGODlhVQAcAPe/APb29vPz8/Ly8vr6+siyO26VN6nBeMawOcaxOcexOseyOuPZnMWwObufCVRz
Js25S7DGf8bWr8avM8q2Qo6rX7uhDHSaPryiD563fPv58MizO8OtMHWbQHufRcaxOseyO8WwOD5a
D9TCY8q0P828XGiRMKG7cJq2Z+Has4qqVv7+/MizPP39+d3PhO3lvYOlTZKwX+vq49njwlN1IFR2
IWCGKsbNurvOnsvZs4uiaam/gqzEi3CKSuXo4cHQr5q2bHyhUYuiZ1lxMH+WXniVUoaqXX6dTnic
Tebr33KTSePm3/r477vFrJCwa5eyZ4GcXZu3dMy4SPH07cvaqX+fU2Z8Qu3v6qK8fFVuK521f/f0
446lbF18MLHHhVBtJPb49M/Zw7PIhdbGbPHy7+vu6PX38uHl3IOmW9nJdY2ja6W7hsbWoMLTobbK
lIOmWbPFnmKGLebo5Onm1p+uh3CTRezr5Onq5qvCf+ft4c+/ZbXApYurWHyeSVd1KFp3LmuPOFJv
JmmMNY+nb2mEQZKvcGJ4POTp3mCELGKCNvf499HZxdbHb6vCkGyLPbLHk7TJhXeXScDHsoWaZcTU
n93nxpmtfers5/n6+cLSsLLJmGCHKnaVS+Hk3Jq1cl15MrjMomGANJmmgdDAaFZ0J7zOopSjfGSE
OKO8geHp16W5jOTo3oelWLrNoJWmetnLePf39/X19fn5+fz8/PDw8PT09Pj4+EtLS/Hx8bicAPv7
++7u7v7+/u/v7/39/f///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAL8ALAAAAABVABwA
AAj/AH/9WjDhAq6DCBMqXMiwocOHEB1emLBAoIoHIlxk8MWxo8ePIEOKHEmy5MgMLkQ8YNFCzK6X
MGPKnEmzps2bOHPCXOSqgRadQIMKHTpzSQMJvZIqXcq0qdOnUKNKncpUwgqqWLNq3fp0hQZZYMOK
FVsm05exaNOqXcu2LVsNBHLJnUuXrpQiTVDV3cu3r9+/gP0SiPsXD6MzbnbcAPLpUuDHkCMLJjCg
suXLmI44kkFpyhoZpwghuWzZlunTqEkPsKW6NWnUsE27HkDgQ6zbuHH7wIBj0iMIwMOwwZAlUe7b
to7jTn6cufLn0J1Dx/1BQa3r2K8botOmi4Hv351Q/3mTPbut8tjPl1ePvv362O6xK7DePpWaOyZM
UIBEYVUSMPGdBx976cVnYC0EInigAgm84uCDDhKhwwknGCGIIps8oQqEHL5ii4cQfvghh7B1aOKD
sY144isJJADAizC+iMgPMMBgChlWVDJGjDy+aAsAP8L4Y5AxEilkiqcJyaORPQKQgAewRClllFzs
kUIKoFgy5ZZb2gJLbF9y6SWXZIoJZplReoAALWy2ySYPfLzwQhCS9GDGEA7k6cAgbrJpCy1/tvln
oG4S2uehhxoKKKJuIrAmonM00kEHV+TghydbRKBpGq0kyqiiizIqqp+xjUoLAgcEoOqqqioBSCAW
WOMABSmsdMIBB394wQmrqiJpGq8B2ALssMQK2yuxrB5wgADMNtssE6McUsC01MLRhx7ONmtLttoK
4Ktp3IZ7WrbjhivAAQzcou667NogxAw1lFCCJjRgEQm7+Oar77789uvvugyk268doVQRQgiFlBLH
vww37HC/DIAwy8QUV2zxxRhnrPHGHHdsMQgb8CLyyCSXbPLJKKes8sosl7xBA3K0LPPMNNdsch0N
tJCHLjz37PPPQAct9NBEF210z6KgcREJKMRw9NNQRy11DCiQEAULAi0wQgURde3112ArVMEIFf0S
EAA7

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: text/css;
	charset="big5"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/include/css/reset.css

BODY {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
DIV {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
DL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
DT {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
DD {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
UL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
OL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
LI {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
H1 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
H2 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
H3 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
H4 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
H5 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
H6 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
PRE {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
FORM {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
FIELDSET {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
INPUT {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
TEXTAREA {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
P {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
BLOCKQUOTE {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
SPAN {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
FIELDSET {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px
}
IMG {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px
}
ADDRESS {
	FONT-STYLE: normal; FONT-WEIGHT: normal
}
CAPTION {
	FONT-STYLE: normal; FONT-WEIGHT: normal
}
CITE {
	FONT-STYLE: normal; FONT-WEIGHT: normal
}
CODE {
	FONT-STYLE: normal; FONT-WEIGHT: normal
}
DFN {
	FONT-STYLE: normal; FONT-WEIGHT: normal
}
EM {
	FONT-STYLE: normal; FONT-WEIGHT: normal
}
STRONG {
	FONT-STYLE: normal; FONT-WEIGHT: normal
}
TH {
	FONT-STYLE: normal; FONT-WEIGHT: normal
}
VAR {
	FONT-STYLE: normal; FONT-WEIGHT: normal
}
OL {
	LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none
}
UL {
	LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none
}
CAPTION {
	TEXT-ALIGN: left
}
TH {
	TEXT-ALIGN: left
}
H1 {
	FONT-SIZE: 100%; FONT-WEIGHT: normal
}
H2 {
	FONT-SIZE: 100%; FONT-WEIGHT: normal
}
H3 {
	FONT-SIZE: 100%; FONT-WEIGHT: normal
}
H4 {
	FONT-SIZE: 100%; FONT-WEIGHT: normal
}
H5 {
	FONT-SIZE: 100%; FONT-WEIGHT: normal
}
H6 {
	FONT-SIZE: 100%; FONT-WEIGHT: normal
}
Q:before {
	CONTENT: ''
}
Q:after {
	CONTENT: ''
}
ABBR {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px
}
ACRONYM {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px
}
:focus {
	OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: 0px
}

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: text/css;
	charset="big5"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/include/css/style.css

HTML {
	OVERFLOW-Y: scroll; MARGIN-BOTTOM: 0.1em; HEIGHT: 100%
}
BODY {
	MARGIN: 0px; FONT: 12px/14pt Tahoma, Arial, Helvetica, Sans-Serif; =
BACKGROUND: url(../../images/main_bg.gif) #f9f9f9 no-repeat 50% top; =
COLOR: #000000
}
IMG {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px
}
H2 {
	FONT: bold 16px "=B7s=B2=D3=A9=FA=C5=E9", Arial, Helvetica, sans-serif
}
H3 {
	FONT: bold 16px "=B7s=B2=D3=A9=FA=C5=E9", Arial, Helvetica, sans-serif
}
H4 {
	FONT: bold 16px "=B7s=B2=D3=A9=FA=C5=E9", Arial, Helvetica, sans-serif
}
A {
	COLOR: #017ca5; TEXT-DECORATION: none
}
A:hover {
	COLOR: #6e4e3a; TEXT-DECORATION: underline
}
#print-bar {
	DISPLAY: none
}
#page {
	POSITION: relative; TEXT-ALIGN: left; MARGIN: 0px auto; WIDTH: 980px
}
* HTML #page {
	WIDTH: 980px
}
#header {
	POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; WIDTH: 980px; PADDING-RIGHT: 0px; HEIGHT: 160px; PADDING-TOP: 0px
}
#header .logo {
	POSITION: absolute; TOP: 20px; LEFT: 409px
}
#header .info {
	POSITION: absolute; TOP: 13px; LEFT: 29px
}
.navMenu01 {
	POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; TOP: 45px; PADDING-TOP: 0px; LEFT: 30px
}
.navMenu01 UL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.navMenu01 UL LI {
	TEXT-ALIGN: center; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-TOP: 0px
}
.navMenu01 UL LI IMG {
	MARGIN: 0px 0px -3px; VERTICAL-ALIGN: baseline !important
}
.navMenu02 {
	POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; TOP: 0px; PADDING-TOP: 0px; LEFT: 650px
}
.navMenu02 UL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.navMenu02 UL LI {
	POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 0px
}
.mainMenu {
	POSITION: absolute; WIDTH: 980px; FONT: bold 15px Tahoma, Arial, =
Helvetica, Sans-Serif; HEIGHT: 77px; TOP: 76px
}
.mainMenu UL {
	POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; WIDTH: 352px; PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 0px
}
.mainMenu UL.blue {
=09
}
.mainMenu UL.green {
	MARGIN-LEFT: 275px
}
.mainMenu UL LI {
	POSITION: relative; FLOAT: left
}
.mainMenu UL LI A {
	TEXT-INDENT: -1000em; WIDTH: 88px; DISPLAY: block; FLOAT: left; HEIGHT: =
47px; TEXT-DECORATION: none
}
.mainMenu UL .lawSearch A {
	BACKGROUND: url(../../images/mainmenu01.gif) no-repeat left top
}
.mainMenu UL .letterjudicial A {
	BACKGROUND: url(../../images/mainmenu02.gif) no-repeat left top
}
.mainMenu UL .English A {
	BACKGROUND: url(../../images/mainmenu03.gif) no-repeat left top
}
.mainMenu UL .bookSearch A {
	BACKGROUND: url(../../images/mainmenu04.gif) no-repeat left top
}
.mainMenu UL .PleadingsSearch A {
	BACKGROUND: url(../../images/mainmenu05.gif) no-repeat left top
}
.mainMenu UL .ContractSearch A {
	BACKGROUND: url(../../images/mainmenu06.gif) no-repeat left top
}
.mainMenu UL .Service A {
	BACKGROUND: url(../../images/mainmenu07.gif) no-repeat left top
}
.mainMenu UL .WebLink A {
	BACKGROUND: url(../../images/mainmenu08.gif) no-repeat left top
}
.mainMenu UL .lawSearch A:hover {
	BACKGROUND-POSITION: 50% bottom
}
.mainMenu UL .letterjudicial A:hover {
	BACKGROUND-POSITION: 50% bottom
}
.mainMenu UL .English A:hover {
	BACKGROUND-POSITION: 50% bottom
}
.mainMenu UL .bookSearch A:hover {
	BACKGROUND-POSITION: 50% bottom
}
.mainMenu UL .PleadingsSearch A:hover {
	BACKGROUND-POSITION: 50% bottom
}
.mainMenu UL .ContractSearch A:hover {
	BACKGROUND-POSITION: 50% bottom
}
.mainMenu UL .Service A:hover {
	BACKGROUND-POSITION: 50% bottom
}
.mainMenu UL .WebLink A:hover {
	BACKGROUND-POSITION: 50% bottom
}
.mainMenu UL .current A {
	BACKGROUND-POSITION: 50% bottom
}
.subMenu {
	POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; WIDTH: 980px; PADDING-RIGHT: 0px; HEIGHT: 30px; TOP: 120px; =
PADDING-TOP: 0px
}
.subMenu #letterjudicial {
	POSITION: absolute; TOP: 5px; LEFT: 80px
}
.subMenu #Service {
	POSITION: absolute; TOP: 5px; RIGHT: 0px
}
#content {
	POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; WIDTH: 980px; PADDING-RIGHT: 0px; FLOAT: left; HEIGHT: auto =
!important; CLEAR: both; PADDING-TOP: 0px
}
.sidebar {
	POSITION: relative; WIDTH: 250px; FLOAT: left
}
.sideblock {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.sideblock H2 {
	POSITION: absolute; FONT: 15px "=B7s=B2=D3=A9=FA=C5=E9"; COLOR: =
#3e3e3e; TOP: 7px; LEFT: 10px
}
.sideblock H2 IMG {
	MARGIN: 3px 0px -3px; VERTICAL-ALIGN: baseline !important
}
.sideblock .body {
	CLEAR: both
}
.sideblock .frame {
=09
}
.sideblock .frame .member {
	POSITION: relative; WIDTH: 200px; BACKGROUND: =
url(../../images/loginbody02.gif) repeat-y; HEIGHT: 124px
}
.sideblock .frame .member .login {
	POSITION: relative; MARGIN: 0px auto; WIDTH: 160px; FONT: 12px =
"=B7s=B2=D3=A9=FA=C5=E9"
}
.sideblock .frame .member .login UL LI {
	LINE-HEIGHT: 24px
}
.sideblock .frame .member .login UL LI INPUT.text {
	WIDTH: 150px; FONT: bold 13px Tahoma, Arial, Helvetica, Sans-Serif
}
.sideblock .frame .banner {
	POSITION: relative; TEXT-ALIGN: center; MARGIN: 5px 0px; WIDTH: 200px
}
.sideblock .frame .inc {
	POSITION: relative; WIDTH: 200px; BACKGROUND: =
url(../../images/sidebody01_02.gif) repeat-y
}
.sideblock .frame .inc UL {
	MARGIN: 0px auto; WIDTH: 180px
}
.sideblock .frame .inc UL LI.list {
	POSITION: relative; PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; =
TEXT-OVERFLOW: ellipsis; PADDING-RIGHT: 0px; WHITE-SPACE: nowrap; =
BACKGROUND: url(../../images/line01.gif) repeat-x 0px 100%; OVERFLOW: =
hidden; PADDING-TOP: 5px
}
.sideblock .frame .seminar {
	POSITION: relative; WIDTH: 215px
}
.sideblock .frame .seminar TABLE {
	MARGIN: 0px auto; WIDTH: 200px; TABLE-LAYOUT: fixed
}
.sideblock .frame .seminar TABLE TD {
	POSITION: relative; PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; =
TEXT-OVERFLOW: ellipsis; PADDING-RIGHT: 0px; WHITE-SPACE: nowrap; =
BACKGROUND: url(../../images/dot01.gif) repeat-x 0px 100%; OVERFLOW: =
hidden; PADDING-TOP: 5px
}
.sideblock .frame .customer {
	POSITION: relative; WIDTH: 215px; BACKGROUND: =
url(../../images/sidebody02_02.gif) repeat-y
}
.sideblock .frame .customer UL {
	MARGIN: 0px auto; WIDTH: 189px
}
.sideblock .frame .customer UL LI.list {
	POSITION: relative; HEIGHT: 57px
}
.sideblock .frame .newbook {
	POSITION: relative; MARGIN: 0px auto; WIDTH: 200px
}
.sideblock .frame .newbook .pic {
	BORDER-BOTTOM: #cccccc 1px solid; POSITION: relative; TEXT-ALIGN: =
center; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 5px; =
BACKGROUND-COLOR: #fff; MARGIN-TOP: 5px; PADDING-LEFT: 5px; WIDTH: 60px; =
PADDING-RIGHT: 5px; FLOAT: left; HEIGHT: 60px; BORDER-TOP: #cccccc 1px =
solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 5px
}
.sideblock .frame .newbook .info {
	POSITION: relative; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; WIDTH: =
115px; TEXT-OVERFLOW: ellipsis; PADDING-RIGHT: 5px; FLOAT: left; =
OVERFLOW: hidden; PADDING-TOP: 5px
}
.sideblock .frame .newbook .content {
	POSITION: relative; WIDTH: 100%; TEXT-OVERFLOW: ellipsis; FLOAT: left; =
HEIGHT: 35px; OVERFLOW: hidden; PADDING-TOP: 5px
}
.sideblock .frame .more {
	POSITION: relative; TEXT-ALIGN: right; PADDING-BOTTOM: 5px; =
PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FLOAT: left; =
PADDING-TOP: 5px
}
.sideblock .frame .searchlist {
	POSITION: relative; PADDING-BOTTOM: 0px; LINE-HEIGHT: 24px; =
PADDING-LEFT: 5px; WIDTH: 240px; PADDING-RIGHT: 5px; BACKGROUND: =
url(../../images/sidebody05_02.gif) repeat-y; FONT-SIZE: 12px; =
PADDING-TOP: 0px
}
.sideblock .frame .searchlist A {
	FONT: 15px/30px Verdana, Arial, Helvetica, sans-serif; COLOR: #026491
}
.sideblock .frame .sideclass {
	POSITION: relative; LINE-HEIGHT: 24px; WIDTH: 240px; BACKGROUND: =
url(../../images/sidebody05_04.gif) repeat-y; FONT-SIZE: 12px
}
.sideblock .frame .sideclass A {
	COLOR: #026491
}
.primary {
	POSITION: relative; MARGIN: 0px auto; WIDTH: 730px
}
.float {
	FLOAT: left
}
.content-bottom {
	POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; WIDTH: 980px; PADDING-RIGHT: 0px; FLOAT: left; HEIGHT: 15px; =
PADDING-TOP: 0px
}
#footer {
	POSITION: relative; BACKGROUND: url(../../images/footer_bg.gif) =
repeat-x 50% top; CLEAR: both
}
#footer .main {
	POSITION: relative; MARGIN: 0px auto; WIDTH: 980px; BOTTOM: 0px; =
HEIGHT: 130px
}
#footer .main .logo {
	POSITION: absolute; TOP: 50px; LEFT: 20px
}
#footer .main .line {
	POSITION: absolute; TOP: 50px; LEFT: 220px
}
#footer .main .fun {
	POSITION: absolute; COLOR: #000; TOP: 8px; LEFT: 580px
}
#footer .main .contact {
	POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; COLOR: #333333; TOP: 65px; RIGHT: 10px; =
PADDING-TOP: 0px
}
#footer .main .copyright {
	POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; FONT: 10px Verdana, Arial, Helvetica, =
sans-serif; COLOR: #666666; TOP: 85px; RIGHT: 10px; PADDING-TOP: 0px
}
#footer .main .copyright IMG {
	MARGIN: 0px 0px -4px; VERTICAL-ALIGN: baseline !important
}
.index {
	POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; WIDTH: 545px; PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 0px
}
.topnews {
	POSITION: relative; WIDTH: 545px
}
.bookshop {
	POSITION: relative; WIDTH: 545px
}
.topnews {
	HEIGHT: 451px
}
.bookshop {
	HEIGHT: 220px
}
.topnews {
	BACKGROUND: url(../../images/panel_bg01.gif) no-repeat 0px 0px
}
.bookshop {
	BACKGROUND: url(../../images/panel_bg02.gif) no-repeat 0px 0px
}
.topnews DT {
	Z-INDEX: 9; POSITION: absolute; TEXT-ALIGN: center; WIDTH: 106px; =
DISPLAY: block; FONT: bold 15px/30px "=B7L=B3n=A5=BF=B6=C2=C5=E9", =
Arial, Helvetica, sans-serif, "=B2=D3=A9=FA=C5=E9"; HEIGHT: 48px; TOP: =
15px; TEXT-DECORATION: none
}
.topnews DT.close {
	BACKGROUND: url(../../images/panel_tab_bg01.gif) no-repeat
}
.topnews DT.open {
	BACKGROUND: url(../../images/panel_tab_bg02.gif) no-repeat
}
.topnews DT.close A {
	COLOR: #fff
}
.topnews DT.open A {
	COLOR: #fff
}
.topnews .news {
	LEFT: 15px
}
.topnews .laws {
	LEFT: 117px
}
.topnews .letter {
	LEFT: 219px
}
.topnews .judicial {
	LEFT: 321px
}
.topnews .forum {
	LEFT: 423px
}
.topnews DD {
	Z-INDEX: 0; POSITION: absolute; WIDTH: 525px; DISPLAY: block; HEIGHT: =
375px; TOP: 65px; LEFT: 10px
}
.topnews DD .morerss {
	POSITION: absolute; BOTTOM: 15px; RIGHT: 10px
}
.topnews DD .morerss IMG {
	MARGIN: 0px 0px -8px; VERTICAL-ALIGN: baseline !important
}
.bookshop .HotBook {
	POSITION: relative; MARGIN: 0px auto; WIDTH: 520px; TOP: 65px
}
.bookshop .HotBook UL LI {
	POSITION: relative; TEXT-ALIGN: center; WIDTH: 130px; FLOAT: left
}
.form {
	POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px auto; =
PADDING-LEFT: 0px; WIDTH: 730px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
.form H2 {
	POSITION: absolute; COLOR: #0681b9; TOP: 10px; LEFT: 25px
}
.law {
	POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px auto 10px; =
PADDING-LEFT: 0px; WIDTH: 730px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
.law .frame {
	POSITION: relative; BORDER-LEFT: #ab9963 1px solid; BACKGROUND-COLOR: =
#f8f6f0; WIDTH: 728px; FLOAT: left; BORDER-RIGHT: #ab9963 1px solid
}
.law .frame .info {
	POSITION: relative; MARGIN: 10px auto; WIDTH: 700px; FONT: 16px Geneva, =
Arial, Helvetica, sans-serif
}
.law .frame .fun {
	POSITION: relative; MARGIN: 10px auto; WIDTH: 640px
}
.law .frame .fun UL LI {
	TEXT-ALIGN: center; MARGIN: 0px auto; WIDTH: 80px; FLOAT: left
}
.law .body {
	CLEAR: both
}
.detail {
	POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px auto 10px; =
PADDING-LEFT: 0px; WIDTH: 730px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
.detail H3 {
	POSITION: absolute; FONT: 15px "=B7s=B2=D3=A9=FA=C5=E9"; COLOR: =
#3e3e3e; TOP: 10px; LEFT: 10px
}
.detail H3 IMG {
	MARGIN: 0px 3px -3px 0px; VERTICAL-ALIGN: baseline !important
}
.detail .fun {
	POSITION: absolute; LINE-HEIGHT: 28px; HEIGHT: 28px; TOP: 4px; RIGHT: =
5px
}
.detail .body {
	CLEAR: both
}
.detail .frame {
	POSITION: relative; BORDER-LEFT: #cccccc 1px solid; BACKGROUND-COLOR: =
#ffffff; WIDTH: 728px; FLOAT: left; BORDER-TOP: #cccccc 1px solid; =
BORDER-RIGHT: #cccccc 1px solid
}
.detail .frame .status {
	POSITION: relative; LINE-HEIGHT: 30px; MARGIN: 5px auto; WIDTH: 95%; =
HEIGHT: 30px
}
.detail .frame .status .info {
	POSITION: relative; WIDTH: 50%; FLOAT: left
}
.detail .frame .status .page {
	POSITION: relative; WIDTH: 50%; FLOAT: left
}
.detail .frame .status .page {
	TEXT-ALIGN: right; FLOAT: right
}
.detail .frame .forum {
	POSITION: relative; LINE-HEIGHT: 30px; MARGIN: 5px auto; WIDTH: 95%; =
HEIGHT: 30px
}
.detail .frame .forum .pname {
	POSITION: relative; WIDTH: 50%; FLOAT: left; FONT-SIZE: 15px
}
.detail .frame .forum .pdate {
	POSITION: relative; WIDTH: 50%; FLOAT: left; FONT-SIZE: 15px
}
.detail .frame .forum .pdate {
	TEXT-ALIGN: right; FLOAT: right; COLOR: #666666; FONT-SIZE: 12px
}
.detail .frame H4 {
	POSITION: relative; MARGIN: 10px auto 5px; WIDTH: 95%; FONT: bold =
15px/24px "=B7s=B2=D3=A9=FA=C5=E9"
}
.detail .frame .chkblock01 {
	POSITION: relative; PADDING-BOTTOM: 10px; MARGIN: 10px auto 0px; =
PADDING-LEFT: 0px; WIDTH: 95%; PADDING-RIGHT: 0px; BACKGROUND: =
url(../../images/dot02.gif) #f7fafe repeat-x 100% 0px; PADDING-TOP: 10px
}
.detail .frame .chkblock02 {
	POSITION: relative; PADDING-BOTTOM: 10px; MARGIN: 10px auto 0px; =
PADDING-LEFT: 0px; WIDTH: 95%; PADDING-RIGHT: 0px; BACKGROUND: =
url(../../images/dot02.gif) #f7fafe repeat-x 100% 0px; PADDING-TOP: 10px
}
.detail .frame .chkblock02 {
	MARGIN: 0px auto; BACKGROUND: url(../../images/dot03.gif) #f8f6f0 =
repeat-x 100% 0px
}
.detail .frame .chkblock01 H5 {
	POSITION: relative; MARGIN: 0px auto; WIDTH: 95%; FONT: bold 15px =
"=B7s=B2=D3=A9=FA=C5=E9"; COLOR: #525252
}
.detail .frame .chkblock02 H5 {
	POSITION: relative; MARGIN: 0px auto; WIDTH: 95%; FONT: bold 15px =
"=B7s=B2=D3=A9=FA=C5=E9"; COLOR: #525252
}
.detail .frame .option {
	POSITION: relative; MARGIN: 5px auto 0px; WIDTH: 95%; FONT-FAMILY: =
"=B2=D3=A9=FA=C5=E9"; FONT-SIZE: 15px
}
.detail .frame .option TD {
	PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; =
PADDING-TOP: 3px
}
.detail .frame .option INPUT[type=3Dcheckbox] {
	MARGIN: 0px 3px -3px 0px; VERTICAL-ALIGN: baseline !important
}
.detail .frame .intro {
	POSITION: relative; MARGIN: 10px auto 5px; WIDTH: 95%; FONT: 12px/24px =
"=B7s=B2=D3=A9=FA=C5=E9"
}
.detail .frame .cont {
	POSITION: relative; MARGIN: 5px auto; WIDTH: 95%; FONT: 15px/24px =
"=B2=D3=A9=FA=C5=E9"
}
.detail .frame .cont TABLE.form {
	PADDING-BOTTOM: 0px; MARGIN: 10px auto; PADDING-LEFT: 0px; WIDTH: 100%; =
PADDING-RIGHT: 0px; BORDER-COLLAPSE: collapse; FONT: 15px Verdana, =
Arial, Helvetica, sans-serif; TABLE-LAYOUT: fixed; PADDING-TOP: 0px
}
.detail .frame .cont TABLE.form TH {
	BORDER-BOTTOM: #cca654 1px solid; TEXT-ALIGN: center; BORDER-LEFT: =
#cca654 1px solid; PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; WIDTH: =
130px; PADDING-RIGHT: 10px; BACKGROUND: #f8f6f0; COLOR: #525252; =
VERTICAL-ALIGN: top; BORDER-TOP: #cca654 1px solid; FONT-WEIGHT: bold; =
BORDER-RIGHT: #cca654 1px solid; PADDING-TOP: 10px
}
.detail .frame .cont TABLE.form TD {
	BORDER-BOTTOM: #cca654 1px solid; BORDER-LEFT: #cca654 1px solid; =
PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; =
BORDER-TOP: #cca654 1px solid; BORDER-RIGHT: #cca654 1px solid; =
PADDING-TOP: 10px
}
.detail .frame .cont .submit {
	POSITION: relative; TEXT-ALIGN: center; MARGIN: 10px auto; WIDTH: 100%
}
.detail .frame .cont OL {
	LIST-STYLE-TYPE: decimal; WIDTH: 90%; FONT: 15px/28px Verdana, Arial, =
Helvetica, sans-serif; MARGIN-LEFT: 45px
}
.detail .frame .cont .ValidateCode {
	POSITION: relative; WIDTH: 100%; FONT: 12px Tahoma, Arial, Helvetica, =
Sans-Serif
}
.detail .frame .cont .ValidateCode IMG {
	MARGIN: 0px 3px -8px 0px; VERTICAL-ALIGN: baseline !important
}
.detail .frame .cont TABLE.Compare {
	BORDER-LEFT: #6699cc 1px solid; WIDTH: 100%; TABLE-LAYOUT: fixed; =
BORDER-TOP: #6699cc 1px solid
}
.detail .frame .cont TABLE.Compare TD {
	BORDER-BOTTOM: #6699cc 1px solid; BORDER-LEFT: #ffffff 1px solid; =
PADDING-BOTTOM: 8px; PADDING-LEFT: 8px; BORDER-SPACING: 0px; =
PADDING-RIGHT: 8px; BORDER-COLLAPSE: collapse; FONT: 12px Tahoma, Arial, =
Helvetica, Sans-Serif; BORDER-TOP: #ffffff 1px solid; BORDER-RIGHT: =
#6699cc 1px solid; PADDING-TOP: 8px
}
.detail .frame .cont .textdata {
	WIDTH: 100%; FONT: 15px/28px Verdana, Arial, Helvetica, sans-serif
}
.detail .frame .cont .textdata UL {
	MARGIN-LEFT: 25px; LIST-STYLE-IMAGE: url(../../images/icon009.gif)
}
.detail .frame .divider {
	POSITION: relative
}
INPUT {
	VERTICAL-ALIGN: middle
}
SELECT {
	VERTICAL-ALIGN: middle
}
INPUT.text {
	BORDER-BOTTOM: #c7c7c7 1px solid; BORDER-LEFT: #c7c7c7 1px solid; =
PADDING-BOTTOM: 4px; LINE-HEIGHT: 20px; PADDING-LEFT: 4px; =
PADDING-RIGHT: 4px; BORDER-TOP: #c7c7c7 1px solid; BORDER-RIGHT: #c7c7c7 =
1px solid; PADDING-TOP: 4px
}
INPUT.edit {
	BORDER-BOTTOM: #c7c7c7 1px solid; BORDER-LEFT: #c7c7c7 1px solid; =
PADDING-BOTTOM: 4px; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; FONT: 15px =
Verdana, Arial, Helvetica, sans-serif; MARGIN-BOTTOM: 4px; BORDER-TOP: =
#c7c7c7 1px solid; BORDER-RIGHT: #c7c7c7 1px solid; PADDING-TOP: 4px
}
SELECT {
	BORDER-BOTTOM: #c3c3c3 1px solid; BORDER-LEFT: #c3c3c3 1px solid; =
PADDING-BOTTOM: 2px; MARGIN: 1px; PADDING-LEFT: 2px; PADDING-RIGHT: 2px; =
COLOR: #000033; BORDER-TOP: #c3c3c3 1px solid; BORDER-RIGHT: #c3c3c3 1px =
solid; PADDING-TOP: 2px
}
TEXTAREA {
	BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; FONT: =
14px/18px "=B7L=B3n=A5=BF=B6=C2=C5=E9", Arial, Helvetica, sans-serif, =
"=B2=D3=A9=FA=C5=E9"; BORDER-TOP: #ccc 1px solid; BORDER-RIGHT: #ccc 1px =
solid
}
INPUT.submit {
	BORDER-BOTTOM: #999 1px solid; BORDER-LEFT: #ccc 1px solid; =
PADDING-BOTTOM: 1px; LINE-HEIGHT: 16px; PADDING-LEFT: 2px; =
PADDING-RIGHT: 2px; FONT-FAMILY: "Lucida Grande", Tahoma, Arial, =
sans-serif; BACKGROUND: url(../../images/fade-butt.gif); COLOR: #333; =
FONT-SIZE: 12px; BORDER-TOP: #ccc 1px solid; CURSOR: pointer; =
BORDER-RIGHT: #999 1px solid; PADDING-TOP: 1px
}
BUTTON {
	BORDER-BOTTOM: #bfbfbf 1px solid; BORDER-LEFT: #dedede 1px solid; =
LINE-HEIGHT: 16px; MARGIN: 0px 2px; FONT-FAMILY: "Lucida Grande", =
Tahoma, Arial, sans-serif; FONT-SIZE: 12px; OVERFLOW: visible; =
BORDER-TOP: #dedede 1px solid; CURSOR: pointer; BORDER-RIGHT: #bbb 1px =
solid; TEXT-DECORATION: none; border-radius: 7px; -moz-border-radius: =
7px; -webkit-border-radius: 7px
}
A.button {
	BORDER-BOTTOM: #bfbfbf 1px solid; BORDER-LEFT: #dedede 1px solid; =
LINE-HEIGHT: 16px; MARGIN: 0px 2px; FONT-FAMILY: "Lucida Grande", =
Tahoma, Arial, sans-serif; FONT-SIZE: 12px; OVERFLOW: visible; =
BORDER-TOP: #dedede 1px solid; CURSOR: pointer; BORDER-RIGHT: #bbb 1px =
solid; TEXT-DECORATION: none; border-radius: 7px; -moz-border-radius: =
7px; -webkit-border-radius: 7px
}
BUTTON {
	PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #fff; PADDING-LEFT: 7px; =
PADDING-RIGHT: 10px; PADDING-TOP: 4px
}
BUTTON IMG {
	MARGIN: 0px 3px -3px 0px; VERTICAL-ALIGN: baseline !important
}
BUTTON:hover {
	BORDER-BOTTOM: #a7cedf 1px solid; BORDER-LEFT: #a7cedf 1px solid; =
BACKGROUND-COLOR: #dff4ff; COLOR: #336699; BORDER-TOP: #a7cedf 1px =
solid; BORDER-RIGHT: #a7cedf 1px solid
}
A.button {
	PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f5f5f5; PADDING-LEFT: 6px; =
PADDING-RIGHT: 6px; DISPLAY: inline-block; COLOR: #000000; PADDING-TOP: =
3px
}
A.button:hover {
	BORDER-BOTTOM: #a7cedf 1px solid; BORDER-LEFT: #a7cedf 1px solid; =
BACKGROUND-COLOR: #dff4ff; COLOR: #336699; BORDER-TOP: #a7cedf 1px =
solid; BORDER-RIGHT: #a7cedf 1px solid
}
BLOCKQUOTE {
	BORDER-BOTTOM: #666 1px dotted; BORDER-LEFT: #666 1px dotted; =
PADDING-BOTTOM: 5px; MARGIN: 10px; PADDING-LEFT: 5px; PADDING-RIGHT: =
5px; FONT: 12px/24px Tahoma, Arial, Helvetica, Sans-Serif; BACKGROUND: =
#fafafa; BORDER-TOP: #666 1px dotted; BORDER-RIGHT: #666 1px dotted; =
PADDING-TOP: 5px
}
.gvClass {
	MARGIN: 0px auto; WIDTH: 95%; BORDER-COLLAPSE: collapse; TABLE-LAYOUT: =
fixed
}
.gvClass TH {
	Z-INDEX: 1000; PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: =
5px; FONT: bold 15px Verdana, Arial, Helvetica, sans-serif; WHITE-SPACE: =
nowrap; BACKGROUND: url(../../images/dot01.gif) repeat-x 50% bottom; =
HEIGHT: 30px; COLOR: #000; VERTICAL-ALIGN: middle; PADDING-TOP: 5px
}
.gvClass TD {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT: =
15px/23px Verdana, Arial, Helvetica, Sans-Serif; BACKGROUND: =
url(../../images/dot01.gif) repeat-x 50% bottom; PADDING-TOP: 5px
}
.gvClass TD .icon {
	POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 5px; FLOAT: left; PADDING-TOP: 7px
}
.gvClass TD .clsname {
	POSITION: relative; WIDTH: 195px; FLOAT: left
}
.ckbstyle INPUT {
	MARGIN-RIGHT: 5px
}
.List-Single {
	MARGIN: 0px auto; WIDTH: 95%; BORDER-COLLAPSE: collapse; TABLE-LAYOUT: =
fixed
}
.List-Single TD {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT: =
15px/23px Verdana, Arial, Helvetica, Sans-Serif; BACKGROUND: =
url(../../images/dot01.gif) repeat-x 50% bottom; VERTICAL-ALIGN: top; =
PADDING-TOP: 5px
}
.List-Single .gvCount {
	TEXT-ALIGN: right; WIDTH: 40px
}
.List-Single TD.gvClass {
	WIDTH: 111px; COLOR: #666666; FONT-SIZE: 12px
}
.List-Single TD.gvDate {
	TEXT-ALIGN: center; WIDTH: 85px
}
.List-Single TD.gvType {
	TEXT-ALIGN: center; WIDTH: 60px; FONT-SIZE: 12px
}
.List-Single TD.gvOverflow {
	TEXT-OVERFLOW: ellipsis; WHITE-SPACE: nowrap; OVERFLOW: hidden
}
.List-Multi {
	MARGIN: 0px auto; WIDTH: 95%; BORDER-COLLAPSE: collapse; TABLE-LAYOUT: =
fixed
}
.List-Multi TD {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT: =
15px/24px Verdana, Arial, Helvetica, Sans-Serif; BACKGROUND: =
url(../../images/dot01.gif) repeat-x 50% bottom; VERTICAL-ALIGN: top; =
PADDING-TOP: 5px
}
.List-Multi TD.gvCount {
	TEXT-ALIGN: right; LINE-HEIGHT: 18px; WIDTH: 45px
}
.List-Multi TD.gvDate {
	TEXT-ALIGN: center; WIDTH: 85px
}
.List-Multi TD .gth {
	POSITION: relative; WIDTH: 90px; FLOAT: left
}
.List-Multi TD .gtd {
	POSITION: relative; WIDTH: 530px; FLOAT: left
}
.gvArticle {
	MARGIN: 0px auto; WIDTH: 100%; BORDER-COLLAPSE: collapse; TABLE-LAYOUT: =
fixed
}
.gvArticle TD {
	BACKGROUND: url(../../images/dot01.gif) repeat-x 50% bottom; =
VERTICAL-ALIGN: top
}
.gvArticle TD .AritcleNo {
	LINE-HEIGHT: 33px; MARGIN: 10px 0px; WIDTH: 100%; HEIGHT: 33px; COLOR: =
#6c591f
}
.gvArticle TD PRE {
	MARGIN: 10px 0px; WIDTH: 100%; FONT: 15px/24px "=B2=D3=A9=FA=C5=E9", =
Verdana, Arial, Helvetica, Sans-Serif
}
.gvArticle TD A {
	TEXT-DECORATION: underline
}
.gvArticle TD .LawReason {
	LINE-HEIGHT: 33px; WIDTH: 100%; HEIGHT: 33px; COLOR: #940000
}
.gvArticle TD .LawAtt {
	LINE-HEIGHT: 26px; TEXT-INDENT: 25px; WIDTH: 100%; BACKGROUND: =
url(../../images/icon008.gif) no-repeat 0px 45%; HEIGHT: 26px
}
.gvArticle TD .LawRef {
	LINE-HEIGHT: 30px; TEXT-INDENT: 15px; WIDTH: 100%; BACKGROUND: =
url(../../images/icon009.gif) no-repeat 0px 45%; HEIGHT: 30px; =
FONT-WEIGHT: bold
}
.gvContent {
	MARGIN: 0px auto; WIDTH: 95%; BORDER-COLLAPSE: collapse; TABLE-LAYOUT: =
fixed
}
.gvContent TD {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT: =
15px/24px Verdana, Arial, Helvetica, Sans-Serif; BACKGROUND: =
url(../../images/dot01.gif) repeat-x 50% bottom; VERTICAL-ALIGN: top; =
PADDING-TOP: 5px
}
.gvContent TD DIV {
	DISPLAY: inline-block
}
.gvContent TD .gth {
	POSITION: relative; TEXT-ALIGN: right; WIDTH: 100px; FLOAT: left; =
FONT-WEIGHT: bold
}
.gvContent TD .gtd {
	POSITION: relative; WIDTH: 525px; FLOAT: left
}
.gvContent TD .gtd PRE {
	FONT: 15px/24px "=B2=D3=A9=FA=C5=E9", Verdana, Arial, Helvetica, =
Sans-Serif
}
.gvContent TD .LawAtt {
	MARGIN-TOP: 20px; WIDTH: 525px; MARGIN-LEFT: 120px
}
.gvContent TD .LawAtt UL {
	LIST-STYLE-IMAGE: url(../../images/icon008.gif)
}
.gvContent TD .LawAtt UL LI {
	MARGIN: 5px 0px
}
.List-Table {
	MARGIN: 0px auto; WIDTH: 95%; BORDER-COLLAPSE: collapse; TABLE-LAYOUT: =
fixed
}
.List-Table TH {
	Z-INDEX: 1000; BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center; =
BORDER-LEFT: #ccc 1px solid; WHITE-SPACE: nowrap; BACKGROUND: =
url(../../images/list_titlebg01.gif) repeat-x; HEIGHT: 30px; COLOR: =
#000; FONT-SIZE: 12px; VERTICAL-ALIGN: middle; BORDER-TOP: #ccc 1px =
solid; BORDER-RIGHT: #ccc 1px solid
}
.List-Table TD {
	BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; =
PADDING-BOTTOM: 8px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; FONT: 15px =
Verdana, Arial, Helvetica, Sans-Serif; BORDER-TOP: #ccc 1px solid; =
BORDER-RIGHT: #ccc 1px solid; PADDING-TOP: 8px
}
.List-Basis {
	MARGIN: 0px auto; WIDTH: 95%; BORDER-COLLAPSE: collapse; TABLE-LAYOUT: =
fixed
}
.List-Basis TD {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT: =
15px/24px Verdana, Arial, Helvetica, Sans-Serif; BACKGROUND: =
url(../../images/dot01.gif) repeat-x 50% bottom; VERTICAL-ALIGN: top; =
PADDING-TOP: 5px
}
.List-Basis .gvCount {
	TEXT-ALIGN: right; LINE-HEIGHT: 18px; WIDTH: 40px
}
.BasisArticle {
	MARGIN: 0px auto; WIDTH: 100%; BORDER-COLLAPSE: collapse; TABLE-LAYOUT: =
fixed
}
.BasisArticle TD {
	BACKGROUND: none transparent scroll repeat 0% 0%; VERTICAL-ALIGN: top
}
.BasisArticle TD .AritcleNo {
	LINE-HEIGHT: 33px; MARGIN: 10px 0px; WIDTH: 100%; HEIGHT: 33px; COLOR: =
#6f2e13
}
.BasisArticle TD PRE {
	MARGIN: 10px 0px; WIDTH: 100%; FONT: 15px/24px "=B2=D3=A9=FA=C5=E9", =
Verdana, Arial, Helvetica, Sans-Serif
}
.BasisArticle TD A {
	TEXT-DECORATION: underline
}
.BasisArticle TD .LawReason {
	LINE-HEIGHT: 33px; WIDTH: 100%; HEIGHT: 33px; COLOR: #940000
}
.BasisArticle TD .LawAtt {
	LINE-HEIGHT: 26px; TEXT-INDENT: 25px; WIDTH: 100%; BACKGROUND: =
url(../../images/icon008.gif) no-repeat 0px 45%; HEIGHT: 26px
}
.gvEmpty TD {
	BACKGROUND-IMAGE: none; BORDER-BOTTOM: medium none; TEXT-ALIGN: center; =
BORDER-LEFT: medium none; BORDER-TOP: medium none; BORDER-RIGHT: medium =
none
}
A.nonlink {
	COLOR: #000; TEXT-DECORATION: none
}
A.nonlink:hover {
	COLOR: #000; TEXT-DECORATION: none
}
.Rss {
	POSITION: absolute; WIDTH: 399px; BACKGROUND: =
url(../../images/Rss_bg01.gif) no-repeat 0px 0px; HEIGHT: 171px; TOP: =
10px; RIGHT: 10px
}
.Rss IMG {
	MARGIN: 0px 0px -5px; VERTICAL-ALIGN: baseline !important
}
.Blog {
	LINE-HEIGHT: 16px; FONT-SIZE: 12px
}

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: text/css;
	charset="big5"
Content-Transfer-Encoding: 7bit
Content-Location: http://www.rootlaw.com.tw/include/css/txt.css

.txt12 {
	FONT: 12px Tahoma, Arial, Helvetica, Sans-Serif
}
.txt12b {
	FONT: bold 12px Tahoma, Arial, Helvetica, Sans-Serif
}
.txt14b {
	FONT: bold 14px Tahoma, Arial, Helvetica, Sans-Serif
}
.txt15b {
	FONT: bold 15px Tahoma, Arial, Helvetica, Sans-Serif
}

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: text/css;
	charset="big5"
Content-Transfer-Encoding: 7bit
Content-Location: http://www.rootlaw.com.tw/include/css/color.css

.txtBlack01 {
	COLOR: #000
}
.txtBlue01 {
	COLOR: #017ca5
}
.txtBlue02 {
	COLOR: #00a0e9
}
.txtBlue03 {
	COLOR: #003399
}
.txtBrown01 {
	COLOR: #663300
}
.txtBrown02 {
	COLOR: #6c591f
}
.txtGreen01 {
	COLOR: #72bc2b
}
.txtGray01 {
	COLOR: #333
}
.txtGray02 {
	COLOR: #999
}
.txtOrange01 {
	COLOR: #ff6600
}
.txtRed01 {
	COLOR: #ff0000
}
.txtRed02 {
	COLOR: #990000
}
.txtWhite01 {
	COLOR: #fff
}

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: text/css;
	charset="big5"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/include/jquery/colorbox.css

#colorbox {
	Z-INDEX: 9999; POSITION: absolute; OVERFLOW: hidden; TOP: 0px; LEFT: =
0px
}
#cboxOverlay {
	Z-INDEX: 9999; POSITION: absolute; OVERFLOW: hidden; TOP: 0px; LEFT: =
0px
}
#cboxWrapper {
	Z-INDEX: 9999; POSITION: absolute; OVERFLOW: hidden; TOP: 0px; LEFT: =
0px
}
#cboxOverlay {
	POSITION: fixed; WIDTH: 100%; HEIGHT: 100%
}
#cboxMiddleLeft {
	CLEAR: left
}
#cboxBottomLeft {
	CLEAR: left
}
#cboxContent {
	POSITION: relative; OVERFLOW: visible
}
#cboxLoadedContent {
	OVERFLOW: auto
}
#cboxLoadedContent IFRAME {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; WIDTH: 100%; DISPLAY: block; =
HEIGHT: 100%; BORDER-TOP: 0px; BORDER-RIGHT: 0px
}
#cboxTitle {
	MARGIN: 0px
}
#cboxLoadingOverlay {
	POSITION: absolute; WIDTH: 100%; TOP: 0px; LEFT: 0px
}
#cboxLoadingGraphic {
	POSITION: absolute; WIDTH: 100%; TOP: 0px; LEFT: 0px
}
#cboxPrevious {
	CURSOR: pointer
}
#cboxNext {
	CURSOR: pointer
}
#cboxClose {
	CURSOR: pointer
}
#cboxSlideshow {
	CURSOR: pointer
}
#cboxOverlay {
	BACKGROUND: #000
}
#colorbox {
=09
}
#cboxTopLeft {
	WIDTH: 14px; BACKGROUND: url(../../images/colorbox/controls.png) =
no-repeat 0px 0px; HEIGHT: 14px
}
#cboxTopCenter {
	BACKGROUND: url(../../images/colorbox/border.png) repeat-x left top; =
HEIGHT: 14px
}
#cboxTopRight {
	WIDTH: 14px; BACKGROUND: url(../../images/colorbox/controls.png) =
no-repeat -36px 0px; HEIGHT: 14px
}
#cboxBottomLeft {
	WIDTH: 14px; BACKGROUND: url(../../images/colorbox/controls.png) =
no-repeat 0px -32px; HEIGHT: 43px
}
#cboxBottomCenter {
	BACKGROUND: url(../../images/colorbox/border.png) repeat-x left bottom; =
HEIGHT: 43px
}
#cboxBottomRight {
	WIDTH: 14px; BACKGROUND: url(../../images/colorbox/controls.png) =
no-repeat -36px -32px; HEIGHT: 43px
}
#cboxMiddleLeft {
	WIDTH: 14px; BACKGROUND: url(../../images/colorbox/controls.png) =
repeat-y -175px 0px
}
#cboxMiddleRight {
	WIDTH: 14px; BACKGROUND: url(../../images/colorbox/controls.png) =
repeat-y -211px 0px
}
#cboxContent {
	BACKGROUND: #fff
}
#cboxLoadedContent {
	MARGIN-BOTTOM: 5px
}
#cboxLoadingOverlay {
	BACKGROUND: url(../../images/colorbox/loading_background.png) no-repeat =
center center
}
#cboxLoadingGraphic {
	BACKGROUND: url(../../images/colorbox/loading.gif) no-repeat center =
center
}
#cboxTitle {
	POSITION: absolute; TEXT-ALIGN: center; WIDTH: 100%; BOTTOM: -25px; =
COLOR: #7c7c7c; FONT-WEIGHT: bold; LEFT: 0px
}
#cboxCurrent {
	POSITION: absolute; BOTTOM: -25px; COLOR: #7c7c7c; FONT-WEIGHT: bold; =
LEFT: 58px
}
#cboxPrevious {
	POSITION: absolute; TEXT-INDENT: -9999px; WIDTH: 23px; BOTTOM: -29px; =
BACKGROUND: url(../../images/colorbox/controls.png) no-repeat 0px 0px; =
HEIGHT: 23px
}
#cboxNext {
	POSITION: absolute; TEXT-INDENT: -9999px; WIDTH: 23px; BOTTOM: -29px; =
BACKGROUND: url(../../images/colorbox/controls.png) no-repeat 0px 0px; =
HEIGHT: 23px
}
#cboxClose {
	POSITION: absolute; TEXT-INDENT: -9999px; WIDTH: 23px; BOTTOM: -29px; =
BACKGROUND: url(../../images/colorbox/controls.png) no-repeat 0px 0px; =
HEIGHT: 23px
}
#cboxSlideshow {
	POSITION: absolute; TEXT-INDENT: -9999px; WIDTH: 23px; BOTTOM: -29px; =
BACKGROUND: url(../../images/colorbox/controls.png) no-repeat 0px 0px; =
HEIGHT: 23px
}
#cboxPrevious {
	BACKGROUND-POSITION: -51px -25px; LEFT: 0px
}
.hover#cboxPrevious {
	BACKGROUND-POSITION: -51px 0px
}
#cboxNext {
	BACKGROUND-POSITION: -75px -25px; LEFT: 27px
}
.hover#cboxNext {
	BACKGROUND-POSITION: -75px 0px
}
#cboxClose {
	BACKGROUND-POSITION: -100px -25px; RIGHT: 0px
}
.hover#cboxClose {
	BACKGROUND-POSITION: -100px 0px
}
.cboxSlideshow_on #cboxSlideshow {
	BACKGROUND-POSITION: -125px 0px; RIGHT: 27px
}
.cboxSlideshow_on .hover#cboxSlideshow {
	BACKGROUND-POSITION: -150px 0px
}
.cboxSlideshow_off #cboxSlideshow {
	BACKGROUND-POSITION: -150px -25px; RIGHT: 27px
}
.cboxSlideshow_off .hover#cboxSlideshow {
	BACKGROUND-POSITION: -125px 0px
}

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_0043_01CFD991.5B522870"


------=_NextPart_001_0043_01CFD991.5B522870
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/LawArticle.aspx?LawID=B020170001008100-1000224

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD =
id=3Dctl00_Head1><TITLE>=E6=96=B0=E5=8C=97=E5=B8=82=E6=94=BF=E5=BA=9C=E6=89=
=80=E5=B1=AC=E5=90=84=E6=A9=9F=E9=97=9C=E5=AD=B8=E6=A0=A1=E5=8D=B3=E6=99=82=
=E9=80=9A=E8=A8=8A=E7=B3=BB=E7=B5=B1=E4=BD=BF=E7=94=A8=E7=AE=A1=E7=90=86=E8=
=A6=81=E9=BB=9E</TITLE>
<META content=3D"text/html; charset=3Dutf-8" http-equiv=3DContent-Type>
<META name=3Dkeywords =
content=3D=E6=A4=8D=E6=A0=B9=E6=B3=95=E5=BE=8B=E7=B6=B2>
<META name=3Ddescription =
content=3D=E6=A4=8D=E6=A0=B9=E6=B3=95=E5=BE=8B=E7=B6=B2>
<META name=3DROBOTS content=3Dindex,follow>
<META name=3DREVISIT-AFTER content=3D"1 days">
<META name=3DCreation-Date content=3D"15-jan-1999 15:40:25">
<META name=3DDISTRIBUTION content=3DGLOBAL>
<META name=3DRATING content=3Dgeneral>
<META name=3DWEBCRAWLERS content=3DALL>
<META name=3DSPIDERS content=3DALL>
<META content=3D0 http-equiv=3DEXPIRES><LINK rel=3Dstylesheet =
type=3Dtext/css=20
href=3D"http://www.rootlaw.com.tw/include/css/reset.css"><LINK =
rel=3Dstylesheet=20
type=3Dtext/css =
href=3D"http://www.rootlaw.com.tw/include/css/style.css"><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.rootlaw.com.tw/include/css/txt.css"><LINK =
rel=3Dstylesheet=20
type=3Dtext/css =
href=3D"http://www.rootlaw.com.tw/include/css/color.css">
<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.rootlaw.com.tw/include/jquery/jquery-1.3.2.min.js"></SC=
RIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.rootlaw.com.tw/include/jquery/jquery.form.js"></SCRIPT>=


<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.rootlaw.com.tw/include/jquery/minwt.FullHeight.min.js">=
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.rootlaw.com.tw/include/jquery/jquery.query-2.1.7.js"></=
SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.rootlaw.com.tw/include/jquery/colorbox-min.js"></SCRIPT=
>
<LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.rootlaw.com.tw/include/jquery/colorbox.css" =
media=3Dscreen>
<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.rootlaw.com.tw/include/js/inc.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript>
$(document).ready(function() {
  $(".colorbox").colorbox();
});
</SCRIPT>

<META name=3DGENERATOR content=3D"MSHTML 8.00.7601.18571"></HEAD>
<BODY>
<FORM id=3DaspnetForm method=3Dpost name=3DaspnetForm=20
action=3DLawArticle.aspx?LawID=3DB020170001008100-1000224>
<DIV><INPUT id=3D__EVENTTARGET type=3Dhidden name=3D__EVENTTARGET> =
<INPUT=20
id=3D__EVENTARGUMENT type=3Dhidden name=3D__EVENTARGUMENT> <INPUT =
id=3D__VIEWSTATE=20
value=3DtNRLG/vN+FvcnUiYY3OzgTMC8bi0Sd1KO/VhbxYxKOKaeCbC24D8vTNYrXLwtk6wA=
UQrCXSWqZBVApria3zzpLOMqdImvRkrMoLLhpXEWHcG+TGH3RypcWQx5NhT/OWPVffZBaBTyU=
oEud7e/pbYGF2oTRmnyKRunu5FGgGqNqGm7XdScqaei7ovzvlaW8mBbbVWSAQfRHYxwk6Bjcj=
5oM7+pZYwyz8FE8zu+R4yuxUwjwnTowLPVPuRzELtLc3AjS0lrsf27jzfsDAMFObTwFwJbi+n=
iykCeLETIepCsfl7rJD1wjqJPSs6faYc23KPNAHwB2AqJjc0bBv4NLrJdcHY9BaSJhxNqYdiE=
yyVeHZoRa55dDdij850+xdUzo9hDgz/+7Ljaq9FVi6r9T/YxfwLSmkItXlR8TbwKU5jZS1n22=
Cp3fzE2b2o6wh6OK4lkhJm6LxoRlKQJtQBzGbOBo0DRJCIfNt2M7g/s952qrLfqJnOJ+1CfS7=
cFhUV1bKn2roSKhuAzqmAIA8LQBM7I3lvBOMM7hveIgTT99U5xIOlVQr6qV3+OhhbMyQidj6L=
0H7up9Kxm3ZxlT8tQfm/uk4JBB8qvx7HQ9wEc5E2WNit+WrqHVBjLUgY94xLxi7bTvTcJrd0J=
6c+DA7DIAMb9TkfPoDyp90rwEslHcJ/W/A40SmzuP0/FJzzv62bvjD+zMpp6LcLazPftw9eNa=
/7GY82yjwUHR9DZboQonI+uW1iOa8/0QhrD8Vp8yfYzM3OQZlBllFuutyOcUQ+gCivmKetWz4=
QdETXugtt/32yujluYmO0BlxMQuS8tPUoq9Y8ttVCJD0FzCBuz5A+NmW1eqMtQ9a3+Je4zMLs=
L/ZjGZFzP+iEqH7kVzf+vk8StKpjXhiFaI50aoKv/FuSK/5OJHYDMk3UJeIEmvOXMSMTcVp8p=
+H8ZoCTx7BF40AmpB89FGKIzEn+BZ/0fHIRqoY0DjtER+fYR6BMs4/KO1mgz4Im0i7jZxLJCr=
9PSbVmq1+81jv9+/U+WAh8qg+UJUzSXYXerUot5OX0+DFIykElEUHgdiiGhRjEr9cddJHsexV=
l7A1LwQTysn87IHhlaXiQ6ynmemSseMAM315uQWbewT2qslRjajcZdIWg9DhLGHHSieY9S5I5=
QOXlXLTjabgG1pyZj6xNNIt0yN1iydZr/dBUQmWG9GkU6cktzwInk3HLfBywmBlaOcba5IAto=
unc/csm/r9Qc90Z++pfpUwgQP5NVCzMUDy3eY59v2l2p17DddyGXxm5nkOqljm6rM7N8hhlnm=
o+zPd29vAKJgFGaxtX5ycHyg0fVBfwdBLEFP1gCyKsAwZg5kPlW0WfjjnSnWlMM0SxYM5fM6Q=
VZK1bcY3AKJeOIYuYvsWywcRASJlQRCZgsIgid79h4yiz8NGlcrUYhXfKLoZIEhohp2GfnLDC=
L+nBQOAp3bmpF7Um+vokPDuUdS4Y0mq93u2JauRnl0zcLm9ie7CXbcbkoD99IEDiJaLrALf83=
0xjoueLJlpItKCJgM+fwxkjQcUQLHT10ZkGOtnbym9+qY7BYG2z2XXe2SaugQCqjUeD3PClmZ=
fpQPxW/CL5Jj9xUZcNPUHsn2nglHFi5+NEAzFQPvqFF1OTem3ZVgqC+gUc81d1TEJQYRJ5v8D=
vv8vuQCC2ZQSeiXrqHEDq2tS9CHB4P1/poDZJpQHMv637EV1YVWRPTQdTt9DtkuIavSdwddeY=
VxMnq92qoUBPZZmneRpsdEOmv2pmklWTeGM1PD/lYv0bjuHuKioBkzn9mG03QlQnjPN5lvLdk=
ZbEnXX8b0ngv1DGOnUxTblSixoHwKqWLtAGe4W/kjKpZb5ejJGLXoS+LdBDsKtBq8oOeCK3/z=
pIwTbnJlHTNDPAh6zSe1TK6F/MGNSGB+pYbo9h8mRe3japIkOio8m+NbwZIb6hUE704O/FyWs=
WY0WOWAAMXjDNBdlMp9l4dh5MwECIUj5D9B8icrom+uDY79mtN4Clj92cbgTuk4d5omBcoPp2=
RciWaKUbHrphzZOXfZlB5Z4Avk3ZAIQ7MdIODWwaMX1hEKL+eBSNMK7TRv2sGnSWq29PzDwIQ=
9dl1apheKDNrBEpf0Hkj50lZ48zh7brQRqLLo7CH5ADZ6GYIeyeFpbxvMJCKatRqrGgjzj0Kh=
GPwp/j3+PfWkXff9p6cGAqWcBpXYwoFkLXi+kC4dXco3USIx+mjd28MGNnem0JPLOAMh7epvJ=
Nq5Q3U3azNevXsOVsmXlDBP6PEHw0uf/AuxIxnErSpLyABAclPbcW+YjYm8+aqc57upAxHSL1=
//ZzD/HZr33yzGw2/82ZJtV6inM0u+Wdw0egpNpQo2hmZ3ENZCuXaMDvPJLcsaeLfpmWqod/f=
hG4st1XomEn+lrAwqyJFClz4L+qPYqZiAV5Ce5j1RwZrUiEFsNrXzjLfIq695Hy/cdB8rUBBA=
ihXCiZ7M/QRs+nPQmRaY+zYNOFyYkXyqMYVIgBH/O7/gbOVqvThj/3XBnBMhhNdagU6MZw8fU=
l31IdGgv4tRv9MtPU1y8GCnD3eYmevPpuL7zhdxXzuJTrTYPRNyZukvZt4OOPfhrp3Iqd6aXB=
ygvCOZLI7NOdcOg5GOle7beyK/jxtMH+G6lNqF1i0AHkUMpb7v7Clv7sa6lGVqq3H8Rcqiw2q=
Z6RIDTHYUJCr2Z/j9uJ4G7Ai91y3tCKSQOaOil2uKM9WZ8WN8mU7aYUCSuVYoWvTczH0fwaTl=
u41wVca8oan5HJjNEwSYzxCKZFP028YafjdS9QgqXNjmKWAbe6H5dg09i3705GATZ7/ffUDzv=
hb7Jz1IvA2l+8j3Z9qkePODLZ2z0VRPqVkql2D5Gpr2VSwtd5lOrPAKQblEs//FO62F6uwpuK=
kzFVW8fbMcMkIv8HV8R6ru+lU1DEG8aleqZBJPfk6fwUpQiAbY1VjiyvuoslyvQ3pi+b3ATI4=
5/WwvMmhnVdX0qJOTk/Nkk2kJXvy/uuS10HxM9F7PjzftI/TXuH5F1IEL/E44C3C6zOUsi/XY=
o3QyB9m/u8aHEGUBRLL3hnlFHuvWbsHaP7RUTcFAQwOlPPtcL/3vOKMGtUn/zfFoXctU27b5A=
u2V4KCp+QAiSiepTrZXDXGZxZdpkJVjmhCdRAaXGK8+eN+t64W3ZE/rf4rEAoL/idd0++aZ5u=
68uz/wWQeL2R4DVpJWkQ9+XJG89la9VaziaBZzduLO4aaQWQgccRf+YYwaJTOT3f13UFEWciE=
/SYwtlzRjIjq5s5abe0cIvDYrkhQuQHHvnkBKQ8Vi5tXgOhwApnyvfSjI+WMhDIQ31sp0LPke=
HRRvBuonGAJ4EkNft7Y3y7BB8qKeZZuMIo/JH+LUq0G05IOrGHpIjoqzHhiF5UbwRkxbSLdA8=
VjSVzgU1V68qxFQhypbSnsLsfeRqyQYr2YJveJKTQ0qhwoGdO2h375lHI3NUAEZC+GaratOb7=
2+yBImxWHOFp1nsCChMicn17oDKbEgszo3verURRzHTRSgwMR0yl/YbRRDRauCutm/TbgIkNz=
vkzMuUwpBzkGNgEDZk13yHLsY6ArqatII7DRmMt359CkXftMP/i1hpo8uNMzLcQXObQS1lR4I=
JydVcdTUt0Hn+Hfqg49TOZ8A4M86QzjlbULikKpa1NipOXjYjDHTrfTvqw0aHn0p1JtcboFQe=
OVJ844ii8ozt+cnxXqGvK5NDqO+y0O5ufU1FHOiv4hpQWQyO9iLlXCK1jqfLA743u5feJEl5y=
S2ea0H5Gg02tbTcdc/9+aXjFGNWt7NKyyTN0fEJE5K3FBFXdMgQsPpOKAGt0A3qeybr5qwi89=
/GRH6fBMYero6BtlN2agU6ceyJV2hECJr0AduMcnMPflSJt+ay6zgfBksbfAle15z9h7QdGkN=
RBSVEDx6su3lJHGIofOoVyB0RMjR2RRl037MjPN0xNmMWv9kv+8sMuhL0V1KInI5564BwB1FO=
nFtIpuC8Y6xp9CipF89kOiDDMCK0zFsfAxp576OmpVfa5NkoDb/S174uqQJIbTCJy0NQ+LQxy=
F7oQsCN7FAM9P6zvm7WSC03z+YnnAfmEdhmvZSAEyScaVYAYOHJfq7PZD25IIfXUKwWWZP3jw=
y1gbZs4B2qWSwcCjxYf1OYjkcS2knnbErReEXrKK5zVFFjnQLdQlx4QwFajy6wpRFp7XyzCJE=
ltdDAnb911oePNqGmSCEGmt2ZwOw4s+cs1lUQEYaeo4M5v76+hwzMfebB3EbaD7Tg6lEtD+fA=
yExe3k58mydozYEvV+unOIKbKGYlsWgBhPcWKySZlGXocY/eIiENzEhIpj2jKxKYDWJMCkULb=
ADmq1gEwJzDt84dGcfnLAgxT/yMSazWmcv46jkb3Nk0qbkdIhKpUM/OI7/mAh7bSgZNNfKUKX=
Y8al12bD8RLet3QyxE/2BUc4lD0Dt9Gd6RfpE92OFh/Rjro9CIT+f53J1QqQGxX/0DbN6pHxt=
Wiof8hyM2Xd4GDnlgVaZda4Y+2t6FfXn9r2jMt4VF2vMEHScFW6cLPLGblSSopTl8DIQoZoo8=
knTnjtNOl0NXyL6XIT8G/02t9v750MLqj6Yaeikh8xccL2+vkRo/a0qE+vVvS+vx/tC7iNNEu=
5DZ0NJ3MPcqEktdyg5ZbIv+EjmFLYkvpSaUi2+ILjEvZEMjI6HMav64pYJc4PcsvqYyG3CA7z=
vzO/nmp8Z4IrwixwQiXzXfdYs17VF8oAoC9kbSziQl2CrqFp10y/jqF2nKQ2HU2SOM90kmBG+=
QPkZ1eUdA2zx3/OzZolKNz18AKTP20AQWfzpPclMbhHlPu/oy0zXoLH/X9dPUds+8SmeySL/b=
jp+t8GJmv1KA4l1qThyOK+Wx206fl+vu5bZbu9HYdBITCVpMdu2BuzeRUzSgTF9QvqDTGfdzx=
vmeNyFE13mqGyCT8zLWipvbSbFBd/p8LsgU1J5uowLl+ts4lSwk9uSAudNRIA21x/GYHNuAUn=
ESzahu+YFR8BR4NZT5SlOLT3Xnkbesjks9gBlCkUVQS71MxXOY2ecMqSLjgzoQ4SM4QC7Or0w=
wk2jpBMV4FZEbLVyVELPD1XtJpfJxIKWxnejSgGUgyjJtR3OahBbWlPMYoXUI6vTC6fUINmF/=
Gk1lSoMk3reizYKqAVwphcU7p818IlGLuejnXtALbZASPooMrpKIAO7J8lN0h6N5/3a6VjI9B=
dlO9HjOU6WP8R+FXCAPl/9nSXBW1ii2J7QGCwNwmcvIEMjkalyDUmdtzy/yp/jNRgBkXOsfyo=
OpX8OIQUm6Ko50i1F34nyhFZJ26VXbUWbedFhK4gGqKIlu3WFRZoylxA41zCyqGANmNDlEIMl=
atE62zRjkXNGKeQZns3mTtGEH7I8PzvCYnLe22HIMr6hFgFxW6n0jcINqJdyQU8+TD5xie6iC=
GINyU6uye8HtHFmkBWC+ZakkJvr2ZTI8dxSzgWG6HyaFFcNS0X2Q8ArT5iaxj336DzVTrEZW9=
2xBUBXoiufdGGE/gyi9J6zHqyvpO00AWbyrTHvqOHlUcgJ7GPWoY7pDIq10ChkoeYo5LsQyI5=
3Hm9D1cP0+wAFupgH4UERH2B1hk+meqMSOuEH3r733R0g1dGzMMKMIafuS4AdXF2q6FFQpsPY=
KFcTbbrvotj/y6PPGmNwl2p5UUNoFRm3GNrFRBR9pwMCvzC+ON5qQGHDjt4lgiXrRHStv9Yj7=
FTuR/mHntk1LDTialcKMtn1Ql7NatTCJYN3szkA9n3053crQQAPfwNV0wX6fXA+33acdB43Ix=
sROyENLIg8UekLxj46dzKSuy5+Nm+Elj+vfsquFmIupDxUSa8FPGmIyujGWAed1cltO83PWFp=
vtpxxw0icnO5R8Jxs/aYju8U/5FrGxDZ4wtMkTK7oi6DjyKfX1PmxgtE3EhXTLwyewf8/FgNc=
QojA7j7C/v1kwA5IBfgQS486iqhhjhNtTAtEtuvHt1gYCKMwpFtLMXEz4IlM+rDOY8gM+D7dm=
u+FpY/23W0N51v6efmj0bvUMnf+CcYjCh5kUnqgFUkLbEiIIma8b0k3aBU/+6eH4/3rfqi9nJ=
CLF/zzH2cJ/ZHwpNp2RG1AmQ7t7Rsf6biMMAN84vvXLHKq6u+9zd8Bm5ksGo0G2G69Gt+1iRo=
7y4T8Q8zt3Nq2ih9q6BhyBDyINaXov2h3auIcpwRYDPxRqjHY7JQY5xBdFt3dE4x80rv9isJE=
f395K1ggnW1fMrQdDqTDSLgG/3TGpVi1OWm1ZkxCzKR/7VDwZK0wPIm0bj54VrUr/gTpjDr/h=
AD78tr8HuByRSmsboE8zFCzTvvmotcb6FR0XjE7K4=20
type=3Dhidden name=3D__VIEWSTATE> </DIV>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
var theForm =3D document.forms['aspnetForm'];
if (!theForm) {
    theForm =3D document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() !=3D false)) {
        theForm.__EVENTTARGET.value =3D eventTarget;
        theForm.__EVENTARGUMENT.value =3D eventArgument;
        theForm.submit();
    }
}
//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.rootlaw.com.tw/WebResource.axd?d=3DuR5trqqv-VtB7sBSq_pX=
8zFgBF6ZRPNP6TsjbbhmMeaMUlyGVxRIFVPmaygKly1fBFhYYQUqyvoo1v23mv0BIYD4q2k1&=
amp;t=3D635295382417495136"></SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
function MyBack() {history.go(-1);}var __cultureInfo =3D =
'{"name":"zh-TW","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecim=
alSeparator":".","IsReadOnly":true,"CurrencyGroupSizes":[3],"NumberGroupS=
izes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencyS=
ymbol":"NT$","NaNSymbol":"=E4=B8=8D=E6=98=AF=E4=B8=80=E5=80=8B=E6=95=B8=E5=
=AD=97","CurrencyNegativePattern":1,"NumberNegativePattern":1,"PercentPos=
itivePattern":1,"PercentNegativePattern":1,"NegativeInfinitySymbol":"=E8=B2=
=A0=E7=84=A1=E7=AA=AE=E5=A4=A7","NegativeSign":"-","NumberDecimalDigits":=
2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositi=
vePattern":0,"PositiveInfinitySymbol":"=E6=AD=A3=E7=84=A1=E7=AA=AE=E5=A4=A7=
","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":"=
.","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"=E2=80=
=B0","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubst=
itution":1},"dateTimeFormat":{"AMDesignator":"=E4=B8=8A=E5=8D=88","Calend=
ar":{"MinSupportedDateTime":"\/Date(-62135596800000)\/","MaxSupportedDate=
Time":"\/Date(253402271999999)\/","AlgorithmType":1,"CalendarType":1,"Era=
s":[1],"TwoDigitYearMax":2029,"IsReadOnly":true},"DateSeparator":"/","Fir=
stDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"yyyy\u0027=E5=B9=
=B4\u0027M\u0027=E6=9C=88\u0027d\u0027=E6=97=A5\u0027 tt =
hh:mm:ss","LongDatePattern":"yyyy\u0027=E5=B9=B4\u0027M\u0027=E6=9C=88\u0=
027d\u0027=E6=97=A5\u0027","LongTimePattern":"tt =
hh:mm:ss","MonthDayPattern":"M\u0027=E6=9C=88\u0027d\u0027=E6=97=A5\u0027=
","PMDesignator":"=E4=B8=8B=E5=8D=88","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\u0027:\u0027mm\u0027:\u0027ss =
\u0027GMT\u0027","ShortDatePattern":"yyyy/M/d","ShortTimePattern":"tt =
hh:mm","SortableDateTimePattern":"yyyy\u0027-\u0027MM\u0027-\u0027dd\u002=
7T\u0027HH\u0027:\u0027mm\u0027:\u0027ss","TimeSeparator":":","UniversalS=
ortableDateTimePattern":"yyyy\u0027-\u0027MM\u0027-\u0027dd =
HH\u0027:\u0027mm\u0027:\u0027ss\u0027Z\u0027","YearMonthPattern":"yyyy\u=
0027=E5=B9=B4\u0027M\u0027=E6=9C=88\u0027","AbbreviatedDayNames":["=E6=98=
=9F=E6=9C=9F=E6=97=A5","=E6=98=9F=E6=9C=9F=E4=B8=80","=E6=98=9F=E6=9C=9F=E4=
=BA=8C","=E6=98=9F=E6=9C=9F=E4=B8=89","=E6=98=9F=E6=9C=9F=E5=9B=9B","=E6=98=
=9F=E6=9C=9F=E4=BA=94","=E6=98=9F=E6=9C=9F=E5=85=AD"],"ShortestDayNames":=
["=E6=97=A5","=E4=B8=80","=E4=BA=8C","=E4=B8=89","=E5=9B=9B","=E4=BA=94",=
"=E5=85=AD"],"DayNames":["=E6=98=9F=E6=9C=9F=E6=97=A5","=E6=98=9F=E6=9C=9F=
=E4=B8=80","=E6=98=9F=E6=9C=9F=E4=BA=8C","=E6=98=9F=E6=9C=9F=E4=B8=89","=E6=
=98=9F=E6=9C=9F=E5=9B=9B","=E6=98=9F=E6=9C=9F=E4=BA=94","=E6=98=9F=E6=9C=9F=
=E5=85=AD"],"AbbreviatedMonthNames":["=E4=B8=80=E6=9C=88","=E4=BA=8C=E6=9C=
=88","=E4=B8=89=E6=9C=88","=E5=9B=9B=E6=9C=88","=E4=BA=94=E6=9C=88","=E5=85=
=AD=E6=9C=88","=E4=B8=83=E6=9C=88","=E5=85=AB=E6=9C=88","=E4=B9=9D=E6=9C=88=
","=E5=8D=81=E6=9C=88","=E5=8D=81=E4=B8=80=E6=9C=88","=E5=8D=81=E4=BA=8C=E6=
=9C=88",""],"MonthNames":["=E4=B8=80=E6=9C=88","=E4=BA=8C=E6=9C=88","=E4=B8=
=89=E6=9C=88","=E5=9B=9B=E6=9C=88","=E4=BA=94=E6=9C=88","=E5=85=AD=E6=9C=88=
","=E4=B8=83=E6=9C=88","=E5=85=AB=E6=9C=88","=E4=B9=9D=E6=9C=88","=E5=8D=81=
=E6=9C=88","=E5=8D=81=E4=B8=80=E6=9C=88","=E5=8D=81=E4=BA=8C=E6=9C=88",""=
],"IsReadOnly":true,"NativeCalendarName":"=E8=A5=BF=E6=9B=86 =
(=E4=B8=AD=E6=96=87)","AbbreviatedMonthGenitiveNames":["=E4=B8=80=E6=9C=88=
","=E4=BA=8C=E6=9C=88","=E4=B8=89=E6=9C=88","=E5=9B=9B=E6=9C=88","=E4=BA=94=
=E6=9C=88","=E5=85=AD=E6=9C=88","=E4=B8=83=E6=9C=88","=E5=85=AB=E6=9C=88"=
,"=E4=B9=9D=E6=9C=88","=E5=8D=81=E6=9C=88","=E5=8D=81=E4=B8=80=E6=9C=88",=
"=E5=8D=81=E4=BA=8C=E6=9C=88",""],"MonthGenitiveNames":["=E4=B8=80=E6=9C=88=
","=E4=BA=8C=E6=9C=88","=E4=B8=89=E6=9C=88","=E5=9B=9B=E6=9C=88","=E4=BA=94=
=E6=9C=88","=E5=85=AD=E6=9C=88","=E4=B8=83=E6=9C=88","=E5=85=AB=E6=9C=88"=
,"=E4=B9=9D=E6=9C=88","=E5=8D=81=E6=9C=88","=E5=8D=81=E4=B8=80=E6=9C=88",=
"=E5=8D=81=E4=BA=8C=E6=9C=88",""]}}';//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.rootlaw.com.tw/ScriptResource.axd?d=3DWEB6G7ajm7qeJGdPP=
RG930TzJIyJD7Iurnl3P0tnZvMh81rYu9aZbb3YozxQSzrhU43lhXtW8G7qHrK-4lYupV6rcg=
gi97mMsP1srKaLyvzjvf4eLSZTMVz59qE61Lc84tlu2OLBH98GA7z4mf7Pmp5TJOQl5VGxICC=
dG2jyXyG9rN7U0&amp;t=3D2e2045e2"></SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
if (typeof(Sys) =3D=3D=3D 'undefined') throw new Error('ASP.NET Ajax =
=E7=94=A8=E6=88=B6=E7=AB=AF=E6=9E=B6=E6=A7=8B=E7=84=A1=E6=B3=95=E8=BC=89=E5=
=85=A5=E3=80=82');
//]]>
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.rootlaw.com.tw/ScriptResource.axd?d=3Dz45tiSKUaRbUrfMOl=
WBQ4eyxALi5WTe2Ho7SHVNzCTdsqibOzePtr2G0_xikhJMcTySf6VoLZnzIfO78ZATCaWnbjQ=
cAYkAcgyQMsv6UyVDd8uLkXBmmI6E5qW2L4uI9lO7Uu3nmsPU_Ef3US8iz7WDUrLN9VwEh7az=
8WmATbMDTCt1n0&amp;t=3D2e2045e2"></SCRIPT>

<DIV><INPUT id=3D__VIEWSTATEGENERATOR value=3D978177E8 type=3Dhidden=20
name=3D__VIEWSTATEGENERATOR> <INPUT id=3D__VIEWSTATEENCRYPTED =
type=3Dhidden=20
name=3D__VIEWSTATEENCRYPTED> <INPUT id=3D__EVENTVALIDATION=20
value=3DFKueNsO2w60sL1X++ETt0g4V9/+9ZkT4eEGJOMW1wAMVBLjRiBXZlDzAWrWy/NX/0=
k2HP+UradeSHgboid2yk1BcTGp9wlgKJDP/5wW6T6KQWaR1=20
type=3Dhidden name=3D__EVENTVALIDATION> </DIV>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ctl00$ScriptManager', =
document.getElementById('aspnetForm'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls([], [], =
[], 90);
//]]>
</SCRIPT>

<DIV id=3Dpage _height=3D"auto">
<DIV id=3Dheader>
<DIV class=3Dlogo><A href=3D"http://www.rootlaw.com.tw/index.aspx"><IMG =
alt=3D""=20
src=3D"http://www.rootlaw.com.tw/images/logo.gif"></A></DIV>
<DIV class=3Dinfo>=E7=9B=AE=E5=89=8D=E7=B7=9A=E4=B8=8A=EF=BC=9A <SPAN =
id=3Dctl00_lblUserOnline class=3DtxtRed01>1489</SPAN>=20
=E4=BA=BA=EF=BC=8C=E7=80=8F=E8=A6=BD=E4=BA=BA=E6=AC=A1=EF=BC=9A<SPAN =
id=3Dctl00_lblWebUserCnt>34907332</SPAN><SPAN id=3Dctl00_lblLoginAC=20
class=3DtxtRed01></SPAN><SPAN id=3Dctl00_lblLoginPW =
class=3DtxtRed01></SPAN></DIV>
<DIV class=3DnavMenu01>
<UL>
  <DIV id=3Dctl00_pnlLogin>
  <LI><IMG alt=3D"" =
src=3D"http://www.rootlaw.com.tw/images/icon099.gif"> <A=20
  class=3Dcolorbox =
title=3D=E6=AD=A1=E8=BF=8E=E7=99=BB=E5=85=A5=E6=A4=8D=E6=A0=B9=E6=B3=95=E5=
=BE=8B=E7=B6=B2=20
  =
href=3D"http://www.rootlaw.com.tw/MemberLogin.aspx">=E6=9C=83=E5=93=A1=E7=
=99=BB=E5=85=A5</A> |</LI>
  <LI><IMG alt=3D"" =
src=3D"http://www.rootlaw.com.tw/images/icon093.gif"> <A=20
  =
title=3D=E5=8A=A0=E5=85=A5=E6=9C=83=E5=93=A1=E5=85=8D=E8=B2=BB=E8=A8=BB=E5=
=86=8A=20
  =
href=3D"http://www.rootlaw.com.tw/MemberJoin.aspx">=E5=8A=A0=E5=85=A5=E6=9C=
=83=E5=93=A1</A></LI></DIV></UL></DIV>
<DIV class=3DnavMenu02>
<UL>
  <LI><IMG alt=3D"" =
src=3D"http://www.rootlaw.com.tw/images/navmenu02_01.gif"></LI>
  <LI><A href=3D"http://www.rootlaw.com.tw/index.aspx"><IMG alt=3D""=20
  src=3D"http://www.rootlaw.com.tw/images/navmenu02_02.gif"></A></LI>
  <LI><A href=3D"http://www.rootlaw.com.tw/rootbook/" =
target=3D_blank><IMG alt=3D""=20
  src=3D"http://www.rootlaw.com.tw/images/navmenu02_03.gif"></A></LI>
  <LI><A href=3D"http://www.rootlaw.com.tw/incBlog.aspx"><IMG alt=3D""=20
  src=3D"http://www.rootlaw.com.tw/images/navmenu02_04.gif"></A></LI>
  <LI><A href=3D"http://www.rootlaw.com.tw/pda/news.asp" =
target=3D_blank><IMG alt=3D""=20
  src=3D"http://www.rootlaw.com.tw/images/navmenu02_05.gif"></A></LI>
  <LI><IMG alt=3D""=20
src=3D"http://www.rootlaw.com.tw/images/navmenu02_06.gif"></LI></UL></DIV=
>
<DIV class=3DmainMenu>
<UL class=3Dblue>
  <LI class=3DlawSearch><A title=3D=E6=B3=95=E8=A6=8F=E6=AA=A2=E7=B4=A2=20
  =
href=3D"http://www.rootlaw.com.tw/LawSearch.aspx">=E6=B3=95=E8=A6=8F=E6=AA=
=A2=E7=B4=A2</A></LI>
  <LI class=3Dletterjudicial><A =
title=3D=E4=BB=A4=E5=87=BD=E5=88=A4=E8=A7=A3=20
  =
href=3D"http://www.rootlaw.com.tw/LawArticle.aspx?LawID=3DB02017000100810=
0-1000224#">=E4=BB=A4=E5=87=BD=E5=88=A4=E8=A7=A3</A></LI>
  <LI class=3DEnglish><A title=3D=E8=8B=B1=E8=AD=AF=E6=B3=95=E8=A6=8F=20
  =
href=3D"http://www.rootlaw.com.tw/en/LastUpdate.aspx">=E8=8B=B1=E8=AD=AF=E6=
=B3=95=E8=A6=8F</A></LI>
  <LI class=3DbookSearch><A title=3D=E8=A3=81=E5=88=A4=E6=9B=B8=20
  =
href=3D"http://www.rootlaw.com.tw/BookSearch.aspx">=E8=A3=81=E5=88=A4=E6=9B=
=B8</A></LI></UL>
<UL class=3Dgreen>
  <LI class=3DPleadingsSearch><A =
title=3D=E6=9B=B8=E7=8B=80=E4=BE=8B=E7=A8=BF=20
  =
href=3D"http://www.rootlaw.com.tw/PleadingsSearch.aspx">=E6=9B=B8=E7=8B=80=
=E4=BE=8B=E7=A8=BF</A></LI>
  <LI class=3DContractSearch><A =
title=3D=E5=A5=91=E7=B4=84=E7=AF=84=E6=9C=AC=20
  =
href=3D"http://www.rootlaw.com.tw/ContractSearch.aspx">=E5=A5=91=E7=B4=84=
=E7=AF=84=E6=9C=AC</A></LI>
  <LI class=3DService><A title=3D=E6=A4=8D=E6=A0=B9=E6=9C=8D=E5=8B=99=20
  =
href=3D"http://www.rootlaw.com.tw/LawArticle.aspx?LawID=3DB02017000100810=
0-1000224#">=E6=A4=8D=E6=A0=B9=E6=9C=8D=E5=8B=99</A></LI>
  <LI class=3DWebLink><A title=3D=E7=9B=B8=E9=97=9C=E7=B6=B2=E7=AB=99=20
  =
href=3D"http://www.rootlaw.com.tw/WebLinkList.aspx">=E7=9B=B8=E9=97=9C=E7=
=B6=B2=E7=AB=99</A></LI></UL></DIV>
<DIV class=3DsubMenu>
<DIV style=3D"DISPLAY: none" id=3Dletterjudicial class=3Dsub-LawNews><A=20
href=3D"http://www.rootlaw.com.tw/LetterSearch.aspx">=E8=A1=8C=E6=94=BF=E4=
=BB=A4=E5=87=BD</A>=E2=94=82<A=20
href=3D"http://www.rootlaw.com.tw/JudicialSearch.aspx">=E5=8F=B8=E6=B3=95=
=E5=88=A4=E8=A7=A3</A></DIV>
<DIV style=3D"DISPLAY: none" id=3DService class=3Dsub-Service><A=20
href=3D"http://www.rootlaw.com.tw/SeminarList.aspx">=E7=A0=94=E8=A8=8E=E6=
=9C=83=E8=A8=8A=E6=81=AF</A>=E2=94=82<A=20
href=3D"http://www.rootlaw.com.tw/MagazineList.aspx">=E6=A4=8D=E6=A0=B9=E9=
=9B=9C=E8=AA=8C</A></DIV></DIV><IFRAME=20
style=3D"DISPLAY: none" =
src=3D"http://www.rootlaw.com.tw/GetSessionLive.aspx"=20
frameBorder=3D0></IFRAME></DIV><!-- #header -->
<DIV id=3Dcontent>
<DIV class=3Dprimary>
<DIV class=3Dform>
<H2><SPAN =
id=3Dctl00_ContentPlaceHolder1_lblFuncTitle>=E6=B3=95=E8=A6=8F=E8=B3=87=E8=
=A8=8A</SPAN></H2>
<DIV class=3Dtitle><IMG alt=3D=E6=B3=95=E8=A6=8F=E8=B3=87=E8=A8=8A=20
src=3D"http://www.rootlaw.com.tw/images/search_title01.gif"></DIV></DIV>
<DIV class=3Dlaw>
<DIV class=3Dbody><IMG alt=3D""=20
src=3D"http://www.rootlaw.com.tw/images/body03.gif"></DIV>
<DIV class=3Dframe>
<DIV class=3Dinfo>
<TABLE cellSpacing=3D0 cellPadding=3D4 width=3D"100%" align=3Dcenter>
  <TBODY>
  <TR>
    <TD vAlign=3Dtop width=3D130 =
align=3Dright>=E6=B3=95=E8=A6=8F=E5=90=8D=E7=A8=B1=EF=BC=9A</TD>
    <TD><A id=3Dctl00_ContentPlaceHolder1_hplLawName=20
      =
href=3D"http://www.rootlaw.com.tw/LawContent.aspx?LawID=3DB02017000100810=
0-1000224">=E6=96=B0=E5=8C=97=E5=B8=82=E6=94=BF=E5=BA=9C=E6=89=80=E5=B1=AC=
=E5=90=84=E6=A9=9F=E9=97=9C=E5=AD=B8=E6=A0=A1=E5=8D=B3=E6=99=82=E9=80=9A=E8=
=A8=8A=E7=B3=BB=E7=B5=B1=E4=BD=BF=E7=94=A8=E7=AE=A1=E7=90=86=E8=A6=81=E9=BB=
=9E</A>=20
    </TD></TR>
  <TR>
    <TD vAlign=3Dtop align=3Dright><SPAN=20
      =
id=3Dctl00_ContentPlaceHolder1_lblModifyTitle>=E8=A8=82=E5=AE=9A=E6=99=82=
=E9=96=93=EF=BC=9A</SPAN></TD>
    <TD><SPAN=20
    =
id=3Dctl00_ContentPlaceHolder1_lblModifyDate>=E4=B8=AD=E8=8F=AF=E6=B0=91=E5=
=9C=8B100=E5=B9=B402=E6=9C=8824=E6=97=A5</SPAN></TD></TR></TBODY></TABLE>=
</DIV>
<DIV class=3Dfun>
<UL>
  <LI><A id=3Dctl00_ContentPlaceHolder1_hplArticle=20
  onmouseover=3D"this.firstChild.src=3D'images/b1_on.gif' "=20
  onmouseout=3D"this.firstChild.src=3D'images/b1_off.gif' "=20
  =
href=3D"http://www.rootlaw.com.tw/LawArticle.aspx?LawID=3DB02017000100810=
0-1000224"><IMG=20
  style=3D"BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"=20
  src=3D"http://www.rootlaw.com.tw/images/b1_off.gif"></A></LI>
  <LI><A id=3Dctl00_ContentPlaceHolder1_hplSection disabled><IMG=20
  style=3D"BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"=20
  src=3D"http://www.rootlaw.com.tw/images/b2_none.gif"></A></LI>
  <LI><A id=3Dctl00_ContentPlaceHolder1_hplArticleSearch=20
  onmouseover=3D"this.firstChild.src=3D'images/b3_on.gif' "=20
  onmouseout=3D"this.firstChild.src=3D'images/b3_off.gif' "=20
  =
href=3D"http://www.rootlaw.com.tw/LawArticleSearch.aspx?LawID=3DB02017000=
1008100-1000224"><IMG=20
  style=3D"BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"=20
  src=3D"http://www.rootlaw.com.tw/images/b3_off.gif"></A></LI>
  <LI><A id=3Dctl00_ContentPlaceHolder1_hplHistory=20
  onmouseover=3D"this.firstChild.src=3D'images/b4_on.gif' "=20
  onmouseout=3D"this.firstChild.src=3D'images/b4_off.gif' "=20
  =
href=3D"http://www.rootlaw.com.tw/LawHistory.aspx?LawID=3DB02017000100810=
0-1000224"><IMG=20
  style=3D"BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"=20
  src=3D"http://www.rootlaw.com.tw/images/b4_off.gif"></A></LI>
  <LI><A id=3Dctl00_ContentPlaceHolder1_hplRefS disabled><IMG=20
  style=3D"BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"=20
  src=3D"http://www.rootlaw.com.tw/images/b5_none.gif"></A></LI>
  <LI><A id=3Dctl00_ContentPlaceHolder1_hplRefT disabled><IMG=20
  style=3D"BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"=20
  src=3D"http://www.rootlaw.com.tw/images/b6_none.gif"></A></LI>
  <LI><A id=3Dctl00_ContentPlaceHolder1_hplBasis disabled><IMG=20
  style=3D"BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"=20
  src=3D"http://www.rootlaw.com.tw/images/b7_none.gif"></A></LI>
  <LI><A id=3Dctl00_ContentPlaceHolder1_hplRefLaw disabled><IMG=20
  style=3D"BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"=20
  =
src=3D"http://www.rootlaw.com.tw/images/b8_none.gif"></A></LI></UL></DIV>=
</DIV>
<DIV class=3Dbody><IMG alt=3D""=20
src=3D"http://www.rootlaw.com.tw/images/body04.gif"></DIV></DIV>
<DIV id=3Dctl00_ContentPlaceHolder1_pnlLawArticle>
<DIV class=3Ddetail>
<H3><IMG alt=3D"" src=3D"http://www.rootlaw.com.tw/images/icon005.gif"> =
<SPAN=20
id=3Dctl00_ContentPlaceHolder1_lblShowType>=E6=89=80=E6=9C=89=E6=A2=9D=E6=
=96=87</SPAN></H3>
<DIV class=3Dfun><INPUT=20
style=3D"BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"=20
id=3Dctl00_ContentPlaceHolder1_imbPrint=20
onclick=3D"window.open('http://www.rootlaw.com.tw/LawArticle.aspx?LawID=3D=
B020170001008100-1000224&amp;pnt=3Dtrue');return false;"=20
alt=3D=E5=8F=8B=E5=96=84=E5=88=97=E5=8D=B0 =
src=3D"http://www.rootlaw.com.tw/images/fun003.gif" type=3Dimage=20
name=3Dctl00$ContentPlaceHolder1$imbPrint> <INPUT=20
style=3D"BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"=20
id=3Dctl00_ContentPlaceHolder1_imbBack onclick=3D"MyBack();return =
false;" alt=3D=E5=9B=9E=E4=B8=8A=E4=B8=80=E9=A0=81=20
src=3D"http://www.rootlaw.com.tw/images/fun002.gif" type=3Dimage=20
name=3Dctl00$ContentPlaceHolder1$imbBack> </DIV>
<DIV class=3Dbody><IMG alt=3D""=20
src=3D"http://www.rootlaw.com.tw/images/body01.gif"></DIV>
<DIV class=3Dframe>
<DIV class=3Dcont>
<DIV>
<TABLE style=3D"BORDER-COLLAPSE: collapse" =
id=3Dctl00_ContentPlaceHolder1_gvLawAll=20
class=3DgvArticle border=3D0 cellSpacing=3D0>
  <TBODY>
  <TR>
    <TD><SPAN =
id=3Dctl00_ContentPlaceHolder1_gvLawAll_ctl02_lblLawData><PRE>=E4=B8=80=E3=
=80=81=E6=96=B0=E5=8C=97=E5=B8=82=E6=94=BF=E5=BA=9C=EF=BC=88=E4=BB=A5=E4=B8=
=8B=E7=B0=A1=E7=A8=B1=E6=9C=AC=E5=BA=9C=EF=BC=89=E7=82=BA=E7=AE=A1=E7=90=86=
=E6=89=80=E5=B1=AC=E5=90=84=E6=A9=9F=E9=97=9C=E3=80=81=E5=AD=B8=E6=A0=A1=EF=
=BC=88=E4=BB=A5=E4=B8=8B=E7=B0=A1=E7=A8=B1=E5=90=84
    =
=E6=A9=9F=E9=97=9C=EF=BC=89=E5=8D=B3=E6=99=82=E9=80=9A=E8=A8=8A=E7=B3=BB=E7=
=B5=B1=EF=BC=88Instant Messaging Systems =
=EF=BC=89=E4=B9=8B=E4=BD=BF=E7=94=A8=EF=BC=8C=E4=BB=A5=E9=99=8D
    =
=E4=BD=8E=E8=B3=87=E8=A8=8A=E5=AE=89=E5=85=A8=E9=A2=A8=E9=9A=AA=E5=8F=8A=E9=
=A0=BB=E5=AF=AC=E6=88=90=E6=9C=AC=EF=BC=8C=E7=89=B9=E8=A8=82=E5=AE=9A=E6=9C=
=AC=E8=A6=81=E9=BB=9E=E3=80=82
</PRE><BR></SPAN></TD></TR>
  <TR>
    <TD><SPAN =
id=3Dctl00_ContentPlaceHolder1_gvLawAll_ctl03_lblLawData><PRE>=E4=BA=8C=E3=
=80=81=E6=9C=AC=E8=A6=81=E9=BB=9E=E7=AE=A1=E7=90=86=E6=A9=9F=E9=97=9C=E7=82=
=BA=E6=9C=AC=E5=BA=9C=E8=B3=87=E8=A8=8A=E4=B8=AD=E5=BF=83=EF=BC=88=E4=BB=A5=
=E4=B8=8B=E7=B0=A1=E7=A8=B1=E8=B3=87=E8=A8=8A=E4=B8=AD=E5=BF=83=EF=BC=89=E3=
=80=82
</PRE><BR></SPAN></TD></TR>
  <TR>
    <TD><SPAN =
id=3Dctl00_ContentPlaceHolder1_gvLawAll_ctl04_lblLawData><PRE>=E4=B8=89=E3=
=80=81=E6=9C=AC=E8=A6=81=E9=BB=9E=E6=89=80=E7=A8=B1=E5=8D=B3=E6=99=82=E9=80=
=9A=E8=A8=8A=E7=B3=BB=E7=B5=B1=EF=BC=8C=E6=8C=87=E4=BD=BF=E7=94=A8=E8=80=85=
=E9=80=8F=E9=81=8E=E7=B6=B2=E9=9A=9B=E7=B6=B2=E8=B7=AF=EF=BC=8C=E5=92=8C=E7=
=89=B9=E5=AE=9A=E5=B0=8D=E8=B1=A1=E4=BB=A5=E8=AA=9E
    =
=E9=9F=B3=E3=80=81=E6=96=87=E5=AD=97=E3=80=81=E5=BD=B1=E5=83=8F=E6=88=96=E6=
=AA=94=E6=A1=88=E9=80=B2=E8=A1=8C=E4=BA=92=E5=8B=95=E6=BA=9D=E9=80=9A=E4=B9=
=8B=E8=BB=9F=E9=AB=94=E5=B7=A5=E5=85=B7=EF=BC=8C=E5=8C=85=E5=90=AB =
Yahoo!Messe
    nger=E3=80=81 MSN Messenger=E3=80=81 AIM=EF=BC=88 =
AOL=EF=BC=89American Online Instant Me
    ssenger =E3=80=81 ICQ=EF=BC=88 I Seek You =
=EF=BC=89=E5=8F=8A=E5=85=B6=E4=BB=96=E7=9B=AE=E7=9A=84=E5=8F=8A=E6=95=88=E6=
=9E=9C=E7=9B=B8=E8=BF=91=E4=B9=8B=E8=BB=9F=E9=AB=94=E3=80=82=E4=BD=86
    =
=E4=B8=8D=E5=8C=85=E6=8B=AC=E8=B3=87=E8=A8=8A=E4=B8=AD=E5=BF=83=E7=B5=B1=E4=
=B8=80=E5=BB=BA=E7=BD=AE=E5=8A=9F=E8=83=BD=E7=9B=B8=E8=BF=91=E4=B9=8B=E5=90=
=8C=E9=A1=9E=E8=BB=9F=E9=AB=94=E3=80=82
</PRE><BR></SPAN></TD></TR>
  <TR>
    <TD><SPAN =
id=3Dctl00_ContentPlaceHolder1_gvLawAll_ctl05_lblLawData><PRE>=E5=9B=9B=E3=
=80=81=E5=90=84=E6=A9=9F=E9=97=9C=E5=93=A1=E5=B7=A5=E6=9C=89=E4=BD=BF=E7=94=
=A8=E5=8D=B3=E6=99=82=E9=80=9A=E8=A8=8A=E7=B3=BB=E7=B5=B1=E9=9C=80=E6=B1=82=
=E8=80=85=EF=BC=8C=E6=87=89=E6=95=98=E6=98=8E=E7=90=86=E7=94=B1=E5=90=91=E6=
=89=80=E5=B1=AC=E6=A9=9F=E9=97=9C=E6=8F=90=E5=87=BA
    =
=E7=94=B3=E8=AB=8B=EF=BC=8C=E7=B6=93=E9=A6=96=E9=95=B7=E6=88=96=E5=85=B6=E6=
=8E=88=E6=AC=8A=E4=BB=A3=E7=90=86=E4=BA=BA=E5=90=8C=E6=84=8F=E5=BE=8C=EF=BC=
=8C=E5=A7=8B=E5=BE=97=E5=AE=89=E8=A3=9D=E5=8F=8A=E4=BD=BF=E7=94=A8=E5=8D=B3=
=E6=99=82=E9=80=9A=E8=A8=8A=E7=B3=BB=E7=B5=B1
    =
=EF=BC=8C=E4=B8=A6=E6=87=89=E7=A7=BB=E7=94=B1=E8=B3=87=E8=A8=8A=E4=B8=AD=E5=
=BF=83=E8=99=95=E7=90=86=E5=BE=8C=E7=BA=8C=E4=B9=8B=E6=AC=8A=E9=99=90=E8=A8=
=AD=E5=AE=9A=E5=8F=8A=E7=AE=A1=E5=88=B6=E4=BD=9C=E6=A5=AD=EF=BC=8C=E5=85=B6=
=E6=9C=89=E8=AE=8A=E6=9B=B4=E6=99=82=EF=BC=8C
    =
=E4=BA=A6=E5=90=8C=EF=BC=9B=E5=90=84=E6=A9=9F=E9=97=9C=E7=BE=A9=E5=B7=A5=E3=
=80=81=E5=BF=97=E5=B7=A5=E5=8F=8A=E5=85=B6=E4=BB=96=E6=A5=AD=E5=8B=99=E7=9B=
=B8=E9=97=9C=E4=BA=BA=E5=93=A1=EF=BC=8C=E6=96=BC=E6=9C=AC=E5=BA=9C=E7=B6=B2=
=E8=B7=AF=E7=AF=84=E5=9C=8D=E5=85=A7=E6=9C=89
    =
=E4=BD=BF=E7=94=A8=E5=8D=B3=E6=99=82=E9=80=9A=E8=A8=8A=E7=B3=BB=E7=B5=B1=E9=
=9C=80=E6=B1=82=E8=80=85=EF=BC=8C=E4=BA=A6=E5=BE=97=E6=AF=94=E7=85=A7=E8=BE=
=A6=E7=90=86=E3=80=82
</PRE><BR></SPAN></TD></TR>
  <TR>
    <TD><SPAN =
id=3Dctl00_ContentPlaceHolder1_gvLawAll_ctl06_lblLawData><PRE>=E4=BA=94=E3=
=80=81=E5=90=84=E6=A9=9F=E9=97=9C=E5=90=8C=E6=84=8F=E6=89=80=E5=B1=AC=E5=93=
=A1=E5=B7=A5=E4=BD=BF=E7=94=A8=E5=8D=B3=E6=99=82=E9=80=9A=E8=A8=8A=E7=B3=BB=
=E7=B5=B1=E8=80=85=EF=BC=8C=E6=87=89=E8=B2=A0=E7=AE=A1=E7=90=86=E3=80=81=E7=
=9D=A3=E5=B0=8E=E8=B2=AC=E4=BB=BB=E3=80=82
</PRE><BR></SPAN></TD></TR>
  <TR>
    <TD><SPAN =
id=3Dctl00_ContentPlaceHolder1_gvLawAll_ctl07_lblLawData><PRE>=E5=85=AD=E3=
=80=81=E6=9C=AC=E5=BA=9C=E7=B6=B2=E8=B7=AF=E5=85=A7=E4=BD=BF=E7=94=A8=E5=8D=
=B3=E6=99=82=E9=80=9A=E8=A8=8A=E7=B3=BB=E7=B5=B1=EF=BC=8C=E6=87=89=E9=81=BF=
=E5=85=8D=E4=BD=9C=E7=82=BA=E7=A7=81=E4=BA=BA=E7=94=A8=E9=80=94=EF=BC=8C=E4=
=B8=A6=E5=9A=B4=E7=A6=81=E8=A8=8E=E8=AB=96=E5=8F=8A
    =
=E5=82=B3=E8=BC=B8=E6=A9=9F=E5=AF=86=E5=8F=8A=E6=95=8F=E6=84=9F=E6=80=A7=E8=
=B3=87=E6=96=99=E3=80=82
    =
=E5=90=84=E6=A9=9F=E9=97=9C=E7=99=BC=E7=8F=BE=E6=89=80=E5=B1=AC=E5=93=A1=E5=
=B7=A5=E6=9C=89=E5=89=8D=E9=A0=85=E6=83=85=E5=BD=A2=EF=BC=8C=E6=87=89=E4=BA=
=88=E5=8B=B8=E9=98=BB=E3=80=82=E7=B6=93=E5=8B=B8=E9=98=BB=E7=84=A1=E6=95=88=
=E8=80=85=EF=BC=8C=E5=BE=97=E9=80=9A=E7=9F=A5
    =
=E8=B3=87=E8=A8=8A=E4=B8=AD=E5=BF=83=E5=8F=96=E6=B6=88=E6=AC=8A=E9=99=90=E8=
=A8=AD=E5=AE=9A=E3=80=82
</PRE><BR></SPAN></TD></TR>
  <TR>
    <TD><SPAN =
id=3Dctl00_ContentPlaceHolder1_gvLawAll_ctl08_lblLawData><PRE>=E4=B8=83=E3=
=80=81=E8=B3=87=E8=A8=8A=E4=B8=AD=E5=BF=83=E6=96=BC=E7=9B=A3=E6=B8=AC=E5=8D=
=B3=E6=99=82=E9=80=9A=E8=A8=8A=E7=B3=BB=E7=B5=B1=E4=BD=BF=E7=94=A8=E7=95=B0=
=E5=B8=B8=E6=88=96=E6=9C=89=E5=8D=B1=E5=AE=B3=E8=B3=87=E8=A8=8A=E5=AE=89=E5=
=85=A8=E4=B9=8B=E8=99=9E=E6=99=82=EF=BC=8C=E5=BE=97
    =
=E9=80=95=E8=A1=8C=E6=9A=AB=E5=81=9C=E7=AE=A1=E5=88=B6=EF=BC=8C=E4=B8=A6=E6=
=96=BC=E6=A9=9F=E9=97=9C=E6=8F=90=E5=87=BA=E8=AA=AA=E6=98=8E=E6=88=96=E5=8D=
=B1=E5=AE=B3=E6=83=85=E6=B3=81=E8=A7=A3=E9=99=A4=E5=BE=8C=EF=BC=8C=E6=81=A2=
=E5=BE=A9=E6=AD=A3=E5=B8=B8=E9=80=A3=E7=B7=9A
    =E3=80=82
</PRE><BR></SPAN></TD></TR>
  <TR>
    <TD><SPAN =
id=3Dctl00_ContentPlaceHolder1_gvLawAll_ctl09_lblLawData><PRE>=E5=85=AB=E3=
=80=81=E4=BD=BF=E7=94=A8=E8=80=85=E7=99=BC=E7=8F=BE=E5=8D=B3=E6=99=82=E9=80=
=9A=E8=A8=8A=E7=B3=BB=E7=B5=B1=E8=87=AA=E8=A1=8C=E5=82=B3=E9=80=81=E8=B3=87=
=E6=96=99=EF=BC=8C=E6=88=96=E5=82=B3=E9=80=81=E5=87=BA=E4=B9=8B=E8=B3=87=E6=
=96=99=E8=88=87=E8=BC=B8=E5=85=A5=E6=99=82=E4=B9=8B
    =
=E8=B3=87=E6=96=99=E4=B8=8D=E4=B8=80=E8=87=B4=E7=AD=89=E5=85=B6=E4=BB=96=E7=
=95=B0=E5=B8=B8=E7=8F=BE=E8=B1=A1=E6=99=82=EF=BC=8C=E6=87=89=E5=8D=B3=E5=81=
=9C=E6=AD=A2=E4=BD=BF=E7=94=A8=EF=BC=8C=E4=B8=A6=E9=80=9A=E7=9F=A5=E8=B3=87=
=E8=A8=8A=E4=B8=AD=E5=BF=83=E8=99=95=E7=90=86
    =E3=80=82
</PRE><BR></SPAN></TD></TR>
  <TR>
    <TD><SPAN =
id=3Dctl00_ContentPlaceHolder1_gvLawAll_ctl10_lblLawData><PRE>=E4=B9=9D=E3=
=80=81=E4=BD=BF=E7=94=A8=E8=80=85=E7=99=BC=E7=8F=BE=E4=B8=8D=E6=98=8E=E4=BA=
=BA=E5=A3=AB=E8=A6=81=E6=B1=82=E5=8A=A0=E5=85=A5=E5=85=B6=E5=80=8B=E4=BA=BA=
=E9=80=9A=E8=A8=8A=E9=8C=84=E6=99=82=EF=BC=8C=E6=87=89=E4=BA=88=E6=8B=92=E7=
=B5=95=EF=BC=9B=E5=A6=82=E4=BB=96=E4=BA=BA=E5=82=B3
    =
=E9=80=81=E8=A8=8A=E6=81=AF=E5=85=A7=E5=AE=B9=E8=88=87=E5=B9=B3=E6=99=82=E6=
=98=8E=E9=A1=AF=E7=95=B0=E5=B8=B8=E6=9C=89=E5=86=92=E7=94=A8=E4=B9=8B=E5=AB=
=8C=EF=BC=8C=E6=88=96=E5=B7=B2=E7=9F=A5=E8=A9=B2=E5=B8=B3=E8=99=9F=E8=A2=AB=
=E7=9B=9C=E7=94=A8=E6=99=82=EF=BC=8C=E6=87=89
    =
=E7=AB=8B=E5=8D=B3=E5=B0=81=E9=8E=96=E8=A9=B2=E5=B8=B3=E8=99=9F=E3=80=82
</PRE><BR></SPAN></TD></TR>
  <TR>
    <TD><SPAN =
id=3Dctl00_ContentPlaceHolder1_gvLawAll_ctl11_lblLawData><PRE>=E5=8D=81=E3=
=80=81=E5=90=84=E6=A9=9F=E9=97=9C=E5=93=A1=E5=B7=A5=E4=BD=BF=E7=94=A8=E5=8D=
=B3=E6=99=82=E9=80=9A=E8=A8=8A=E7=B3=BB=E7=B5=B1=EF=BC=8C=E5=A6=82=E7=B6=93=
=E8=B3=87=E8=A8=8A=E4=B8=AD=E5=BF=83=E7=99=BC=E7=8F=BE=E4=BB=BB=E4=BD=95=E9=
=81=95=E5=8F=8D=E6=9C=AC=E8=A6=81=E9=BB=9E=E6=88=96
    =
=E5=8D=B1=E5=AE=B3=E8=B3=87=E8=A8=8A=E5=AE=89=E5=85=A8=E4=B9=8B=E8=A1=8C=E7=
=82=BA=E6=88=96=E6=84=8F=E5=9C=96=E6=99=82=EF=BC=8C=E5=BE=97=E7=AB=8B=E5=8D=
=B3=E5=8F=96=E6=B6=88=E5=85=B6=E4=BD=BF=E7=94=A8=E6=AC=8A=E9=99=90=EF=BC=8C=
=E6=83=85=E7=AF=80=E9=87=8D=E5=A4=A7=E8=80=85
    =
=EF=BC=8C=E4=B8=A6=E5=BE=97=E7=A7=BB=E8=AB=8B=E6=9C=89=E9=97=9C=E6=A9=9F=E9=
=97=9C=E8=99=95=E7=90=86=E3=80=82
</PRE></SPAN></TD></TR></TBODY></TABLE></DIV></DIV></DIV>
<DIV class=3Dbody><IMG alt=3D""=20
src=3D"http://www.rootlaw.com.tw/images/body02.gif"></DIV></DIV></DIV></D=
IV><!-- #primary --></DIV>
<DIV class=3Dcontent-bottom></DIV><!-- .content --></DIV><!-- #Page -->
<DIV id=3Dfooter _height=3D"none">
<DIV class=3Dmain>
<DIV class=3Dlogo><A href=3D"http://www.rootlaw.com.tw/"><IMG title=3D"" =
alt=3D""=20
src=3D"http://www.rootlaw.com.tw/images/footer_logo.gif"></A></DIV>
<DIV class=3Dline><A href=3D"http://www.rootlaw.com.tw/"><IMG title=3D"" =
alt=3D""=20
src=3D"http://www.rootlaw.com.tw/images/footer_line.gif"></A></DIV>
<DIV class=3Dfun><A =
href=3D"http://www.rootlaw.com.tw/incRss.aspx">RSS=E6=9C=8D=E5=8B=99=E8=A8=
=82=E9=96=B1=E8=AA=AA=E6=98=8E</A> |=20
<A =
href=3D"http://www.rootlaw.com.tw/incProposal.aspx">=E5=90=88=E4=BD=9C=E6=
=8F=90=E6=A1=88</A> | <A=20
href=3D"http://www.rootlaw.com.tw/incPrivacy.aspx">=E9=9A=B1=E7=A7=81=E6=AC=
=8A=E8=81=B2=E6=98=8E</A> |<A=20
href=3D"http://www.rootlaw.com.tw/incAuthor.aspx"> =
=E8=91=97=E4=BD=9C=E6=AC=8A=E8=81=B2=E6=98=8E</A> | <A=20
href=3D"http://www.rootlaw.com.tw/incQA.aspx">=E5=B8=B8=E8=A6=8B=E5=95=8F=
=E9=A1=8C</A></DIV>
<DIV class=3Dcontact>106 =
=E8=87=BA=E5=8C=97=E5=B8=82=E4=BF=A1=E7=BE=A9=E8=B7=AF=E4=B8=89=E6=AE=B5 =
162-12 =E8=99=9F=E7=8E=AB=E7=91=B0=E5=A4=A7=E6=A8=93 3 =E6=A8=93 =
=E9=9B=BB=E8=A9=B1=EF=BC=9A02-2707-2848=20
=E5=82=B3=E7=9C=9F=EF=BC=9A02-2708-4428</DIV>
<DIV class=3Dcopyright>COPYRIGHT (C) 2000-2003 ROOTLAW ALL RIGHTS =
RESERVED. MAIL=20
TO <A href=3D"http://www.rootlaw.com.tw/incContact.aspx">WEBMASTER. <IMG =

src=3D"http://www.rootlaw.com.tw/images/icon001.gif"></A></DIV></DIV></DI=
V><!-- #footer -->
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
Sys.Application.initialize();
//]]>
</SCRIPT>
</FORM></BODY></HTML>

------=_NextPart_001_0043_01CFD991.5B522870
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/GetSessionLive.aspx

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML =
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>=E6=9C=AA=E5=91=BD=E5=
=90=8D=E9=A0=81=E9=9D=A2</TITLE>
<META content=3D"text/html; charset=3Dutf-8" http-equiv=3DContent-Type>
<META content=3D50;url=3DGetSessionLive.aspx http-equiv=3DRefresh>
<META name=3DGENERATOR content=3D"MSHTML 8.00.7601.18571"></HEAD>
<BODY>
<FORM id=3Dform1 method=3Dpost name=3Dform1 =
action=3DGetSessionLive.aspx>
<DIV><INPUT id=3D__VIEWSTATE=20
value=3D/wEPDwUKLTg2Njc2NjM3M2RkN5l1yFgLEMmnZlARt+/2rCf2MZY=3D =
type=3Dhidden=20
name=3D__VIEWSTATE> </DIV>
<DIV><INPUT id=3D__VIEWSTATEGENERATOR value=3DD6CFFE14 type=3Dhidden=20
name=3D__VIEWSTATEGENERATOR> </DIV>
<DIV></DIV></FORM></BODY></HTML>

------=_NextPart_001_0043_01CFD991.5B522870--

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/include/jquery/jquery-1.3.2.min.js

/*=0A=
 * jQuery JavaScript Library v1.3.2=0A=
 * http://jquery.com/=0A=
 *=0A=
 * Copyright (c) 2009 John Resig=0A=
 * Dual licensed under the MIT and GPL licenses.=0A=
 * http://docs.jquery.com/License=0A=
 *=0A=
 * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)=0A=
 * Revision: 6246=0A=
 */=0A=
(function(){var =
l=3Dthis,g,y=3Dl.jQuery,p=3Dl.$,o=3Dl.jQuery=3Dl.$=3Dfunction(E,F){return=
 new =
o.fn.init(E,F)},D=3D/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=3D/^.[^:#\[\.=
,]*$/;o.fn=3Do.prototype=3D{init:function(E,H){E=3DE||document;if(E.nodeT=
ype){this[0]=3DE;this.length=3D1;this.context=3DE;return this}if(typeof =
E=3D=3D=3D"string"){var =
G=3DD.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=3Do.clean([G[1]],H)}else{var =
I=3Ddocument.getElementById(G[3]);if(I&&I.id!=3DG[3]){return =
o().find(E)}var F=3Do(I||[]);F.context=3Ddocument;F.selector=3DE;return =
F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return =
o(document).ready(E)}}if(E.selector&&E.context){this.selector=3DE.selecto=
r;this.context=3DE.context}return =
this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",=
size:function(){return this.length},get:function(E){return =
E=3D=3D=3Dg?Array.prototype.slice.call(this):this[E]},pushStack:function(=
F,H,E){var =
G=3Do(F);G.prevObject=3Dthis;G.context=3Dthis.context;if(H=3D=3D=3D"find"=
){G.selector=3Dthis.selector+(this.selector?" =
":"")+E}else{if(H){G.selector=3Dthis.selector+"."+H+"("+E+")"}}return =
G},setArray:function(E){this.length=3D0;Array.prototype.push.apply(this,E=
);return this},each:function(F,E){return =
o.each(this,F,E)},index:function(E){return =
o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var =
E=3DF;if(typeof F=3D=3D=3D"string"){if(H=3D=3D=3Dg){return =
this[0]&&o[G||"attr"](this[0],F)}else{E=3D{};E[F]=3DH}}return =
this.each(function(I){for(F in =
E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E=
,F){if((E=3D=3D"width"||E=3D=3D"height")&&parseFloat(F)<0){F=3Dg}return =
this.attr(E,F,"curCSS")},text:function(F){if(typeof =
F!=3D=3D"object"&&F!=3Dnull){return =
this.empty().append((this[0]&&this[0].ownerDocument||document).createText=
Node(F))}var =
E=3D"";o.each(F||this,function(){o.each(this.childNodes,function(){if(thi=
s.nodeType!=3D8){E+=3Dthis.nodeType!=3D1?this.nodeValue:o.fn.text([this])=
}})});return E},wrapAll:function(E){if(this[0]){var =
F=3Do(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBef=
ore(this[0])}F.map(function(){var =
G=3Dthis;while(G.firstChild){G=3DG.firstChild}return =
G}).append(this)}return this},wrapInner:function(E){return =
this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){re=
turn this.each(function(){o(this).wrapAll(E)})},append:function(){return =
this.domManip(arguments,true,function(E){if(this.nodeType=3D=3D1){this.ap=
pendChild(E)}})},prepend:function(){return =
this.domManip(arguments,true,function(E){if(this.nodeType=3D=3D1){this.in=
sertBefore(E,this.firstChild)}})},before:function(){return =
this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,=
this)})},after:function(){return =
this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,=
this.nextSibling)})},end:function(){return =
this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:f=
unction(E){if(this.length=3D=3D=3D1){var =
F=3Dthis.pushStack([],"find",E);F.length=3D0;o.find(E,this[0],F);return =
F}else{return this.pushStack(o.unique(o.map(this,function(G){return =
o.find(E,G)})),"find",E)}},clone:function(G){var =
E=3Dthis.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){va=
r I=3Dthis.outerHTML;if(!I){var =
J=3Dthis.ownerDocument.createElement("div");J.appendChild(this.cloneNode(=
true));I=3DJ.innerHTML}return o.clean([I.replace(/ =
jQuery\d+=3D"(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return =
this.cloneNode(true)}});if(G=3D=3D=3Dtrue){var =
H=3Dthis.find("*").andSelf(),F=3D0;E.find("*").andSelf().each(function(){=
if(this.nodeName!=3D=3DH[F].nodeName){return}var =
I=3Do.data(H[F],"events");for(var K in I){for(var J in =
I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return =
E},filter:function(E){return =
this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return =
E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return =
F.nodeType=3D=3D=3D1})),"filter",E)},closest:function(E){var =
G=3Do.expr.match.POS.test(E)?o(E):null,F=3D0;return =
this.map(function(){var =
H=3Dthis;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(=
H,"closest",F);return =
H}H=3DH.parentNode;F++}})},not:function(E){if(typeof =
E=3D=3D=3D"string"){if(f.test(E)){return =
this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=3Do.multiFilter=
(E,this)}}var F=3DE.length&&E[E.length-1]!=3D=3Dg&&!E.nodeType;return =
this.filter(function(){return =
F?o.inArray(this,E)<0:this!=3DE})},add:function(E){return =
this.pushStack(o.unique(o.merge(this.get(),typeof =
E=3D=3D=3D"string"?o(E):o.makeArray(E))))},is:function(E){return =
!!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return =
!!E&&this.is("."+E)},val:function(K){if(K=3D=3D=3Dg){var =
E=3Dthis[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{=
}).specified?E.value:E.text}if(o.nodeName(E,"select")){var =
I=3DE.selectedIndex,L=3D[],M=3DE.options,H=3DE.type=3D=3D"select-one";if(=
I<0){return null}for(var F=3DH?I:0,J=3DH?I+1:M.length;F<J;F++){var =
G=3DM[F];if(G.selected){K=3Do(G).val();if(H){return K}L.push(K)}}return =
L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof =
K=3D=3D=3D"number"){K+=3D""}return =
this.each(function(){if(this.nodeType!=3D1){return}if(o.isArray(K)&&/radi=
o|checkbox/.test(this.type)){this.checked=3D(o.inArray(this.value,K)>=3D0=
||o.inArray(this.name,K)>=3D0)}else{if(o.nodeName(this,"select")){var =
N=3Do.makeArray(K);o("option",this).each(function(){this.selected=3D(o.in=
Array(this.value,N)>=3D0||o.inArray(this.text,N)>=3D0)});if(!N.length){th=
is.selectedIndex=3D-1}}else{this.value=3DK}}})},html:function(E){return =
E=3D=3D=3Dg?(this[0]?this[0].innerHTML.replace(/ =
jQuery\d+=3D"(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWit=
h:function(E){return this.after(E).remove()},eq:function(E){return =
this.slice(E,+E+1)},slice:function(){return =
this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.=
prototype.slice.call(arguments).join(","))},map:function(E){return =
this.pushStack(o.map(this,function(G,F){return =
E.call(G,F,G)}))},andSelf:function(){return =
this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var =
I=3D(this[0].ownerDocument||this[0]).createDocumentFragment(),F=3Do.clean=
(J,(this[0].ownerDocument||this[0]),I),H=3DI.firstChild;if(H){for(var =
G=3D0,E=3Dthis.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.c=
loneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return =
M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbo=
dy")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn=
.init.prototype=3Do.fn;function =
z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o=
.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.pa=
rentNode.removeChild(F)}}function e(){return +new =
Date}o.extend=3Do.fn.extend=3Dfunction(){var =
J=3Darguments[0]||{},H=3D1,I=3Darguments.length,E=3Dfalse,G;if(typeof =
J=3D=3D=3D"boolean"){E=3DJ;J=3Darguments[1]||{};H=3D2}if(typeof =
J!=3D=3D"object"&&!o.isFunction(J)){J=3D{}}if(I=3D=3DH){J=3Dthis;--H}for(=
;H<I;H++){if((G=3Darguments[H])!=3Dnull){for(var F in G){var =
K=3DJ[F],L=3DG[F];if(J=3D=3D=3DL){continue}if(E&&L&&typeof =
L=3D=3D=3D"object"&&!L.nodeType){J[F]=3Do.extend(E,K||(L.length!=3Dnull?[=
]:{}),L)}else{if(L!=3D=3Dg){J[F]=3DL}}}}}return J};var =
b=3D/z-?index|font-?weight|opacity|zoom|line-?height/i,q=3Ddocument.defau=
ltView||{},s=3DObject.prototype.toString;o.extend({noConflict:function(E)=
{l.$=3Dp;if(E){l.jQuery=3Dy}return o},isFunction:function(E){return =
s.call(E)=3D=3D=3D"[object Function]"},isArray:function(E){return =
s.call(E)=3D=3D=3D"[object Array]"},isXMLDoc:function(E){return =
E.nodeType=3D=3D=3D9&&E.documentElement.nodeName!=3D=3D"HTML"||!!E.ownerD=
ocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.t=
est(G)){var =
F=3Ddocument.getElementsByTagName("head")[0]||document.documentElement,E=3D=
document.createElement("script");E.type=3D"text/javascript";if(o.support.=
scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=3DG}F.i=
nsertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){ret=
urn =
F.nodeName&&F.nodeName.toUpperCase()=3D=3DE.toUpperCase()},each:function(=
G,K,F){var E,H=3D0,I=3DG.length;if(F){if(I=3D=3D=3Dg){for(E in =
G){if(K.apply(G[E],F)=3D=3D=3Dfalse){break}}}else{for(;H<I;){if(K.apply(G=
[H++],F)=3D=3D=3Dfalse){break}}}}else{if(I=3D=3D=3Dg){for(E in =
G){if(K.call(G[E],E,G[E])=3D=3D=3Dfalse){break}}}else{for(var =
J=3DG[0];H<I&&K.call(J,H,J)!=3D=3Dfalse;J=3DG[++H]){}}}return =
G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=3DI.call(H,F)}return =
typeof =
I=3D=3D=3D"number"&&G=3D=3D"curCSS"&&!b.test(E)?I+"px":I},className:{add:=
function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType=3D=3D=
1&&!o.className.has(E.className,H)){E.className+=3D(E.className?" =
":"")+H}})},remove:function(E,F){if(E.nodeType=3D=3D1){E.className=3DF!=3D=
=3Dg?o.grep(E.className.split(/\s+/),function(G){return =
!o.className.has(F,G)}).join(" "):""}},has:function(F,E){return =
F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:functi=
on(H,G,I){var E=3D{};for(var F in =
G){E[F]=3DH.style[F];H.style[F]=3DG[F]}I.call(H);for(var F in =
G){H.style[F]=3DE[F]}},css:function(H,F,J,E){if(F=3D=3D"width"||F=3D=3D"h=
eight"){var =
L,G=3D{position:"absolute",visibility:"hidden",display:"block"},K=3DF=3D=3D=
"width"?["Left","Right"]:["Top","Bottom"];function =
I(){L=3DF=3D=3D"width"?H.offsetWidth:H.offsetHeight;if(E=3D=3D=3D"border"=
){return}o.each(K,function(){if(!E){L-=3DparseFloat(o.curCSS(H,"padding"+=
this,true))||0}if(E=3D=3D=3D"margin"){L+=3DparseFloat(o.curCSS(H,"margin"=
+this,true))||0}else{L-=3DparseFloat(o.curCSS(H,"border"+this+"Width",tru=
e))||0}})}if(H.offsetWidth!=3D=3D0){I()}else{o.swap(H,G,I)}return =
Math.max(0,Math.round(L))}return =
o.curCSS(H,F,J)},curCSS:function(I,F,G){var =
L,E=3DI.style;if(F=3D=3D"opacity"&&!o.support.opacity){L=3Do.attr(E,"opac=
ity");return =
L=3D=3D""?"1":L}if(F.match(/float/i)){F=3Dw}if(!G&&E&&E[F]){L=3DE[F]}else=
{if(q.getComputedStyle){if(F.match(/float/i)){F=3D"float"}F=3DF.replace(/=
([A-Z])/g,"-$1").toLowerCase();var =
M=3Dq.getComputedStyle(I,null);if(M){L=3DM.getPropertyValue(F)}if(F=3D=3D=
"opacity"&&L=3D=3D""){L=3D"1"}}else{if(I.currentStyle){var =
J=3DF.replace(/\-(\w)/g,function(N,O){return =
O.toUpperCase()});L=3DI.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?=
$/i.test(L)&&/^\d/.test(L)){var =
H=3DE.left,K=3DI.runtimeStyle.left;I.runtimeStyle.left=3DI.currentStyle.l=
eft;E.left=3DL||0;L=3DE.pixelLeft+"px";E.left=3DH;I.runtimeStyle.left=3DK=
}}}}return L},clean:function(F,K,I){K=3DK||document;if(typeof =
K.createElement=3D=3D=3D"undefined"){K=3DK.ownerDocument||K[0]&&K[0].owne=
rDocument||document}if(!I&&F.length=3D=3D=3D1&&typeof =
F[0]=3D=3D=3D"string"){var =
H=3D/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var=
 =
G=3D[],E=3D[],L=3DK.createElement("div");o.each(F,function(P,S){if(typeof=
 S=3D=3D=3D"number"){S+=3D""}if(!S){return}if(typeof =
S=3D=3D=3D"string"){S=3DS.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){re=
turn =
T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"=
></"+T+">"});var =
O=3DS.replace(/^\s+/,"").substring(0,10).toLowerCase();var =
Q=3D!O.indexOf("<opt")&&[1,"<select =
multiple=3D'multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>"=
,"</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>",=
"</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||=
(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></t=
body></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>=
","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>=
"]||[0,"",""];L.innerHTML=3DQ[1]+S+Q[2];while(Q[0]--){L=3DL.lastChild}if(=
!o.support.tbody){var =
R=3D/<tbody/i.test(S),N=3D!O.indexOf("<table")&&!R?L.firstChild&&L.firstC=
hild.childNodes:Q[1]=3D=3D"<table>"&&!R?L.childNodes:[];for(var =
M=3DN.length-1;M>=3D0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.=
length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespa=
ce&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.=
firstChild)}S=3Do.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=
=3Do.merge(G,S)}});if(I){for(var =
J=3D0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLo=
werCase()=3D=3D=3D"text/javascript")){E.push(G[J].parentNode?G[J].parentN=
ode.removeChild(G[J]):G[J])}else{if(G[J].nodeType=3D=3D=3D1){G.splice.app=
ly(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.=
appendChild(G[J])}}return E}return =
G},attr:function(J,G,K){if(!J||J.nodeType=3D=3D3||J.nodeType=3D=3D8){retu=
rn g}var =
H=3D!o.isXMLDoc(J),L=3DK!=3D=3Dg;G=3DH&&o.props[G]||G;if(J.tagName){var =
F=3D/href|src|style/.test(G);if(G=3D=3D"selected"&&J.parentNode){J.parent=
Node.selectedIndex}if(G in =
J&&H&&!F){if(L){if(G=3D=3D"type"&&o.nodeName(J,"input")&&J.parentNode){th=
row"type property can't be =
changed"}J[G]=3DK}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return =
J.getAttributeNode(G).nodeValue}if(G=3D=3D"tabIndex"){var =
I=3DJ.getAttributeNode("tabIndex");return =
I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|text=
area)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return =
J[G]}if(!o.support.style&&H&&G=3D=3D"style"){return =
o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var =
E=3D!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G)=
;return =
E=3D=3D=3Dnull?g:E}if(!o.support.opacity&&G=3D=3D"opacity"){if(L){J.zoom=3D=
1;J.filter=3D(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=3D=
=3D"NaN"?"":"alpha(opacity=3D"+K*100+")")}return =
J.filter&&J.filter.indexOf("opacity=3D")>=3D0?(parseFloat(J.filter.match(=
/opacity=3D([^)]*)/)[1])/100)+"":""}G=3DG.replace(/-([a-z])/ig,function(M=
,N){return N.toUpperCase()});if(L){J[G]=3DK}return =
J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:=
function(G){var E=3D[];if(G!=3Dnull){var =
F=3DG.length;if(F=3D=3Dnull||typeof =
G=3D=3D=3D"string"||o.isFunction(G)||G.setInterval){E[0]=3DG}else{while(F=
){E[--F]=3DG[F]}}}return E},inArray:function(G,H){for(var =
E=3D0,F=3DH.length;E<F;E++){if(H[E]=3D=3D=3DG){return E}}return =
-1},merge:function(H,E){var =
F=3D0,G,I=3DH.length;if(!o.support.getAll){while((G=3DE[F++])!=3Dnull){if=
(G.nodeType!=3D8){H[I++]=3DG}}}else{while((G=3DE[F++])!=3Dnull){H[I++]=3D=
G}}return H},unique:function(K){var F=3D[],E=3D{};try{for(var =
G=3D0,H=3DK.length;G<H;G++){var =
J=3Do.data(K[G]);if(!E[J]){E[J]=3Dtrue;F.push(K[G])}}}catch(I){F=3DK}retu=
rn F},grep:function(F,J,E){var G=3D[];for(var =
H=3D0,I=3DF.length;H<I;H++){if(!E!=3D!J(F[H],H)){G.push(F[H])}}return =
G},map:function(E,J){var F=3D[];for(var G=3D0,H=3DE.length;G<H;G++){var =
I=3DJ(E[G],G);if(I!=3Dnull){F[F.length]=3DI}}return =
F.concat.apply([],F)}});var =
C=3Dnavigator.userAgent.toLowerCase();o.browser=3D{version:(C.match(/.+(?=
:rv|it|ra|ie)[\/: =
]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),ms=
ie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compati=
ble|webkit)/.test(C)};o.each({parent:function(E){return =
E.parentNode},parents:function(E){return =
o.dir(E,"parentNode")},next:function(E){return =
o.nth(E,2,"nextSibling")},prev:function(E){return =
o.nth(E,2,"previousSibling")},nextAll:function(E){return =
o.dir(E,"nextSibling")},prevAll:function(E){return =
o.dir(E,"previousSibling")},siblings:function(E){return =
o.sibling(E.parentNode.firstChild,E)},children:function(E){return =
o.sibling(E.firstChild)},contents:function(E){return =
o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.make=
Array(E.childNodes)}},function(E,F){o.fn[E]=3Dfunction(G){var =
H=3Do.map(this,F);if(G&&typeof =
G=3D=3D"string"){H=3Do.multiFilter(G,H)}return =
this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"p=
repend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith=
"},function(E,F){o.fn[E]=3Dfunction(G){var J=3D[],L=3Do(G);for(var =
K=3D0,H=3DL.length;K<H;K++){var =
I=3D(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=3DJ.conc=
at(I)}return =
this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"")=
;if(this.nodeType=3D=3D1){this.removeAttribute(E)}},addClass:function(E){=
o.className.add(this,E)},removeClass:function(E){o.className.remove(this,=
E)},toggleClass:function(F,E){if(typeof =
E!=3D=3D"boolean"){E=3D!o.className.has(this,F)}o.className[E?"add":"remo=
ve"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",=
this).add([this]).each(function(){o.event.remove(this);o.removeData(this)=
});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:functio=
n(){o(this).children().remove();while(this.firstChild){this.removeChild(t=
his.firstChild)}}},function(E,F){o.fn[E]=3Dfunction(){return =
this.each(F,arguments)}});function j(E,F){return =
E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var =
h=3D"jQuery"+e(),v=3D0,A=3D{};o.extend({cache:{},data:function(F,E,G){F=3D=
F=3D=3Dl?A:F;var =
H=3DF[h];if(!H){H=3DF[h]=3D++v}if(E&&!o.cache[H]){o.cache[H]=3D{}}if(G!=3D=
=3Dg){o.cache[H][E]=3DG}return =
E?o.cache[H][E]:H},removeData:function(F,E){F=3DF=3D=3Dl?A:F;var =
H=3DF[h];if(E){if(o.cache[H]){delete o.cache[H][E];E=3D"";for(E in =
o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete =
F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete =
o.cache[H]}},queue:function(F,E,H){if(F){E=3D(E||"fx")+"queue";var =
G=3Do.data(F,E);if(!G||o.isArray(H)){G=3Do.data(F,E,o.makeArray(H))}else{=
if(H){G.push(H)}}}return G},dequeue:function(H,G){var =
E=3Do.queue(H,G),F=3DE.shift();if(!G||G=3D=3D=3D"fx"){F=3DE[0]}if(F!=3D=3D=
g){F.call(H)}}});o.fn.extend({data:function(E,G){var =
H=3DE.split(".");H[1]=3DH[1]?"."+H[1]:"";if(G=3D=3D=3Dg){var =
F=3Dthis.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F=3D=3D=3Dg&&this.l=
ength){F=3Do.data(this[0],E)}return =
F=3D=3D=3Dg&&H[1]?this.data(H[0]):F}else{return =
this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G=
)})}},removeData:function(E){return =
this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeo=
f E!=3D=3D"string"){F=3DE;E=3D"fx"}if(F=3D=3D=3Dg){return =
o.queue(this[0],E)}return this.each(function(){var =
G=3Do.queue(this,E,F);if(E=3D=3D"fx"&&G.length=3D=3D1){G[0].call(this)}})=
},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});=0A=
/*=0A=
 * Sizzle CSS Selector Engine - v0.9.3=0A=
 *  Copyright 2009, The Dojo Foundation=0A=
 *  Released under the MIT, BSD, and GPL Licenses.=0A=
 *  More information: http://sizzlejs.com/=0A=
 */=0A=
(function(){var =
R=3D/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]=
'"]+)+\]|\\.|[^ =
>+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=3D0,H=3DObject.prototype.toString;var =
F=3Dfunction(Y,U,ab,ac){ab=3Dab||[];U=3DU||document;if(U.nodeType!=3D=3D1=
&&U.nodeType!=3D=3D9){return[]}if(!Y||typeof Y!=3D=3D"string"){return =
ab}var =
Z=3D[],W,af,ai,T,ad,V,X=3Dtrue;R.lastIndex=3D0;while((W=3DR.exec(Y))!=3D=3D=
null){Z.push(W[1]);if(W[2]){V=3DRegExp.rightContext;break}}if(Z.length>1&=
&M.exec(Y)){if(Z.length=3D=3D=3D2&&I.relative[Z[0]]){af=3DJ(Z[0]+Z[1],U)}=
else{af=3DI.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=3DZ.shift=
();if(I.relative[Y]){Y+=3DZ.shift()}af=3DJ(Y,af)}}}else{var =
ae=3Dac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length=3D=3D=3D1&&U.par=
entNode?U.parentNode:U,Q(U));af=3DF.filter(ae.expr,ae.set);if(Z.length>0)=
{ai=3DE(af)}else{X=3Dfalse}while(Z.length){var =
ah=3DZ.pop(),ag=3Dah;if(!I.relative[ah]){ah=3D""}else{ag=3DZ.pop()}if(ag=3D=
=3Dnull){ag=3DU}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=3Daf}if(!ai){throw=
"Syntax error, unrecognized expression: =
"+(ah||Y)}if(H.call(ai)=3D=3D=3D"[object =
Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType=3D=3D=3D1){for(va=
r =
aa=3D0;ai[aa]!=3Dnull;aa++){if(ai[aa]&&(ai[aa]=3D=3D=3Dtrue||ai[aa].nodeT=
ype=3D=3D=3D1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var =
aa=3D0;ai[aa]!=3Dnull;aa++){if(ai[aa]&&ai[aa].nodeType=3D=3D=3D1){ab.push=
(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=3Dfalse;=
ab.sort(G);if(hasDuplicate){for(var =
aa=3D1;aa<ab.length;aa++){if(ab[aa]=3D=3D=3Dab[aa-1]){ab.splice(aa--,1)}}=
}}}return ab};F.matches=3Dfunction(T,U){return =
F(T,null,null,U)};F.find=3Dfunction(aa,T,ab){var =
Z,X;if(!aa){return[]}for(var W=3D0,V=3DI.order.length;W<V;W++){var =
Y=3DI.order[W],X;if((X=3DI.match[Y].exec(aa))){var =
U=3DRegExp.leftContext;if(U.substr(U.length-1)!=3D=3D"\\"){X[1]=3D(X[1]||=
"").replace(/\\/g,"");Z=3DI.find[Y](X,T,ab);if(Z!=3Dnull){aa=3Daa.replace=
(I.match[Y],"");break}}}}if(!Z){Z=3DT.getElementsByTagName("*")}return{se=
t:Z,expr:aa}};F.filter=3Dfunction(ad,ac,ag,W){var =
V=3Dad,ai=3D[],aa=3Dac,Y,T,Z=3Dac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){f=
or(var ab in I.filter){if((Y=3DI.match[ab].exec(ad))!=3Dnull){var =
U=3DI.filter[ab],ah,af;T=3Dfalse;if(aa=3D=3Dai){ai=3D[]}if(I.preFilter[ab=
]){Y=3DI.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=3Dah=3Dtrue}else{if(Y=3D=3D=
=3Dtrue){continue}}}if(Y){for(var =
X=3D0;(af=3Daa[X])!=3Dnull;X++){if(af){ah=3DU(af,Y,X,aa);var =
ae=3DW^!!ah;if(ag&&ah!=3Dnull){if(ae){T=3Dtrue}else{aa[X]=3Dfalse}}else{i=
f(ae){ai.push(af);T=3Dtrue}}}}}if(ah!=3D=3Dg){if(!ag){aa=3Dai}ad=3Dad.rep=
lace(I.match[ab],"");if(!T){return[]}break}}}if(ad=3D=3DV){if(T=3D=3Dnull=
){throw"Syntax error, unrecognized expression: =
"+ad}else{break}}V=3Dad}return aa};var =
I=3DF.selectors=3D{order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\u=
FFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=3D[=
'"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFF=
F_-]|\\.)+)\s*(?:(\S?=3D)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\u=
FFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+=
-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=3D[^-]=
|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^=
\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHan=
dle:{href:function(T){return =
T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=3Dtypeof =
T=3D=3D=3D"string",ab=3DX&&!/\W/.test(T),Y=3DX&&!ab;if(ab&&!Z){T=3DT.toUp=
perCase()}for(var =
W=3D0,V=3Daa.length,U;W<V;W++){if((U=3Daa[W])){while((U=3DU.previousSibli=
ng)&&U.nodeType!=3D=3D1){}aa[W]=3DY||U&&U.nodeName=3D=3D=3DT?U||false:U=3D=
=3D=3DT}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=3Dtypeof =
U=3D=3D=3D"string";if(X&&!/\W/.test(U)){U=3Daa?U:U.toUpperCase();for(var =
V=3D0,T=3DZ.length;V<T;V++){var Y=3DZ[V];if(Y){var =
W=3DY.parentNode;Z[V]=3DW.nodeName=3D=3D=3DU?W:false}}}else{for(var =
V=3D0,T=3DZ.length;V<T;V++){var =
Y=3DZ[V];if(Y){Z[V]=3DX?Y.parentNode:Y.parentNode=3D=3D=3DU}}if(X){F.filt=
er(U,Z,true)}}},"":function(W,U,Y){var =
V=3DL++,T=3DS;if(!U.match(/\W/)){var =
X=3DU=3DY?U:U.toUpperCase();T=3DP}T("parentNode",U,V,W,X,Y)},"~":function=
(W,U,Y){var V=3DL++,T=3DS;if(typeof =
U=3D=3D=3D"string"&&!U.match(/\W/)){var =
X=3DU=3DY?U:U.toUpperCase();T=3DP}T("previousSibling",U,V,W,X,Y)}},find:{=
ID:function(U,V,W){if(typeof V.getElementById!=3D=3D"undefined"&&!W){var =
T=3DV.getElementById(U[1]);return =
T?[T]:[]}},NAME:function(V,Y,Z){if(typeof =
Y.getElementsByName!=3D=3D"undefined"){var =
U=3D[],X=3DY.getElementsByName(V[1]);for(var =
W=3D0,T=3DX.length;W<T;W++){if(X[W].getAttribute("name")=3D=3D=3DV[1]){U.=
push(X[W])}}return U.length=3D=3D=3D0?null:U}},TAG:function(T,U){return =
U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=3D=
" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var =
X=3D0,Y;(Y=3DU[X])!=3Dnull;X++){if(Y){if(Z^(Y.className&&(" =
"+Y.className+" =
").indexOf(W)>=3D0)){if(!V){T.push(Y)}}else{if(V){U[X]=3Dfalse}}}}return =
false},ID:function(T){return =
T[1].replace(/\\/g,"")},TAG:function(U,T){for(var =
V=3D0;T[V]=3D=3D=3Dfalse;V++){}return =
T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=3D=3D"nt=
h"){var =
U=3D/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=3D=3D"even"&&"2n"||T[2]=3D=3D"od=
d"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=3D(U[1]+(U[2]||1))-0=
;T[3]=3DU[3]-0}T[0]=3DL++;return T},ATTR:function(X,U,V,T,Y,Z){var =
W=3DX[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=3DI.attrMap[W]}if(X[=
2]=3D=3D=3D"~=3D"){X[4]=3D" "+X[4]+" "}return =
X},PSEUDO:function(X,U,V,T,Y){if(X[1]=3D=3D=3D"not"){if(X[3].match(R).len=
gth>1||/^\w/.test(X[3])){X[3]=3DF(X[3],null,null,U)}else{var =
W=3DF.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return =
false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return =
true}}return X},POS:function(T){T.unshift(true);return =
T}},filters:{enabled:function(T){return =
T.disabled=3D=3D=3Dfalse&&T.type!=3D=3D"hidden"},disabled:function(T){ret=
urn T.disabled=3D=3D=3Dtrue},checked:function(T){return =
T.checked=3D=3D=3Dtrue},selected:function(T){T.parentNode.selectedIndex;r=
eturn T.selected=3D=3D=3Dtrue},parent:function(T){return =
!!T.firstChild},empty:function(T){return =
!T.firstChild},has:function(V,U,T){return =
!!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},tex=
t:function(T){return"text"=3D=3D=3DT.type},radio:function(T){return"radio=
"=3D=3D=3DT.type},checkbox:function(T){return"checkbox"=3D=3D=3DT.type},f=
ile:function(T){return"file"=3D=3D=3DT.type},password:function(T){return"=
password"=3D=3D=3DT.type},submit:function(T){return"submit"=3D=3D=3DT.typ=
e},image:function(T){return"image"=3D=3D=3DT.type},reset:function(T){retu=
rn"reset"=3D=3D=3DT.type},button:function(T){return"button"=3D=3D=3DT.typ=
e||T.nodeName.toUpperCase()=3D=3D=3D"BUTTON"},input:function(T){return/in=
put|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:functio=
n(U,T){return T=3D=3D=3D0},last:function(V,U,T,W){return =
U=3D=3D=3DW.length-1},even:function(U,T){return =
T%2=3D=3D=3D0},odd:function(U,T){return =
T%2=3D=3D=3D1},lt:function(V,U,T){return =
U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return =
T[3]-0=3D=3DU},eq:function(V,U,T){return =
T[3]-0=3D=3DU}},filter:{PSEUDO:function(Z,V,W,aa){var =
U=3DV[1],X=3DI.filters[U];if(X){return =
X(Z,W,V,aa)}else{if(U=3D=3D=3D"contains"){return(Z.textContent||Z.innerTe=
xt||"").indexOf(V[3])>=3D0}else{if(U=3D=3D=3D"not"){var Y=3DV[3];for(var =
W=3D0,T=3DY.length;W<T;W++){if(Y[W]=3D=3D=3DZ){return false}}return =
true}}}},CHILD:function(T,W){var =
Z=3DW[1],U=3DT;switch(Z){case"only":case"first":while(U=3DU.previousSibli=
ng){if(U.nodeType=3D=3D=3D1){return false}}if(Z=3D=3D"first"){return =
true}U=3DT;case"last":while(U=3DU.nextSibling){if(U.nodeType=3D=3D=3D1){r=
eturn false}}return true;case"nth":var =
V=3DW[2],ac=3DW[3];if(V=3D=3D1&&ac=3D=3D0){return true}var =
Y=3DW[0],ab=3DT.parentNode;if(ab&&(ab.sizcache!=3D=3DY||!T.nodeIndex)){va=
r =
X=3D0;for(U=3Dab.firstChild;U;U=3DU.nextSibling){if(U.nodeType=3D=3D=3D1)=
{U.nodeIndex=3D++X}}ab.sizcache=3DY}var =
aa=3DT.nodeIndex-ac;if(V=3D=3D0){return =
aa=3D=3D0}else{return(aa%V=3D=3D0&&aa/V>=3D0)}}},ID:function(U,T){return =
U.nodeType=3D=3D=3D1&&U.getAttribute("id")=3D=3D=3DT},TAG:function(U,T){r=
eturn(T=3D=3D=3D"*"&&U.nodeType=3D=3D=3D1)||U.nodeName=3D=3D=3DT},CLASS:f=
unction(U,T){return(" "+(U.className||U.getAttribute("class"))+" =
").indexOf(T)>-1},ATTR:function(Y,W){var =
V=3DW[1],T=3DI.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=3Dnull?Y[V]:Y.getAt=
tribute(V),Z=3DT+"",X=3DW[2],U=3DW[4];return =
T=3D=3Dnull?X=3D=3D=3D"!=3D":X=3D=3D=3D"=3D"?Z=3D=3D=3DU:X=3D=3D=3D"*=3D"=
?Z.indexOf(U)>=3D0:X=3D=3D=3D"~=3D"?(" "+Z+" =
").indexOf(U)>=3D0:!U?Z&&T!=3D=3Dfalse:X=3D=3D=3D"!=3D"?Z!=3DU:X=3D=3D=3D=
"^=3D"?Z.indexOf(U)=3D=3D=3D0:X=3D=3D=3D"$=3D"?Z.substr(Z.length-U.length=
)=3D=3D=3DU:X=3D=3D=3D"|=3D"?Z=3D=3D=3DU||Z.substr(0,U.length+1)=3D=3D=3D=
U+"-":false},POS:function(X,U,V,Y){var =
T=3DU[2],W=3DI.setFilters[T];if(W){return W(X,V,U,Y)}}}};var =
M=3DI.match.POS;for(var O in =
I.match){I.match[O]=3DRegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/=
.source)}var =
E=3Dfunction(U,T){U=3DArray.prototype.slice.call(U);if(T){T.push.apply(T,=
U);return T}return =
U};try{Array.prototype.slice.call(document.documentElement.childNodes)}ca=
tch(N){E=3Dfunction(X,W){var U=3DW||[];if(H.call(X)=3D=3D=3D"[object =
Array]"){Array.prototype.push.apply(U,X)}else{if(typeof =
X.length=3D=3D=3D"number"){for(var =
V=3D0,T=3DX.length;V<T;V++){U.push(X[V])}}else{for(var =
V=3D0;X[V];V++){U.push(X[V])}}}return U}}var =
G;if(document.documentElement.compareDocumentPosition){G=3Dfunction(U,T){=
var =
V=3DU.compareDocumentPosition(T)&4?-1:U=3D=3D=3DT?0:1;if(V=3D=3D=3D0){has=
Duplicate=3Dtrue}return V}}else{if("sourceIndex" in =
document.documentElement){G=3Dfunction(U,T){var =
V=3DU.sourceIndex-T.sourceIndex;if(V=3D=3D=3D0){hasDuplicate=3Dtrue}retur=
n V}}else{if(document.createRange){G=3Dfunction(W,U){var =
V=3DW.ownerDocument.createRange(),T=3DU.ownerDocument.createRange();V.sel=
ectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var =
X=3DV.compareBoundaryPoints(Range.START_TO_END,T);if(X=3D=3D=3D0){hasDupl=
icate=3Dtrue}return X}}}}(function(){var =
U=3Ddocument.createElement("form"),V=3D"script"+(new =
Date).getTime();U.innerHTML=3D"<input name=3D'"+V+"'/>";var =
T=3Ddocument.documentElement;T.insertBefore(U,T.firstChild);if(!!document=
.getElementById(V)){I.find.ID=3Dfunction(X,Y,Z){if(typeof =
Y.getElementById!=3D=3D"undefined"&&!Z){var =
W=3DY.getElementById(X[1]);return W?W.id=3D=3D=3DX[1]||typeof =
W.getAttributeNode!=3D=3D"undefined"&&W.getAttributeNode("id").nodeValue=3D=
=3D=3DX[1]?[W]:g:[]}};I.filter.ID=3Dfunction(Y,W){var X=3Dtypeof =
Y.getAttributeNode!=3D=3D"undefined"&&Y.getAttributeNode("id");return =
Y.nodeType=3D=3D=3D1&&X&&X.nodeValue=3D=3D=3DW}}T.removeChild(U)})();(fun=
ction(){var =
T=3Ddocument.createElement("div");T.appendChild(document.createComment(""=
));if(T.getElementsByTagName("*").length>0){I.find.TAG=3Dfunction(U,Y){va=
r X=3DY.getElementsByTagName(U[1]);if(U[1]=3D=3D=3D"*"){var =
W=3D[];for(var =
V=3D0;X[V];V++){if(X[V].nodeType=3D=3D=3D1){W.push(X[V])}}X=3DW}return =
X}}T.innerHTML=3D"<a href=3D'#'></a>";if(T.firstChild&&typeof =
T.firstChild.getAttribute!=3D=3D"undefined"&&T.firstChild.getAttribute("h=
ref")!=3D=3D"#"){I.attrHandle.href=3Dfunction(U){return =
U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){=
var T=3DF,U=3Ddocument.createElement("div");U.innerHTML=3D"<p =
class=3D'TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").l=
ength=3D=3D=3D0){return}F=3Dfunction(Y,X,V,W){X=3DX||document;if(!W&&X.no=
deType=3D=3D=3D9&&!Q(X)){try{return =
E(X.querySelectorAll(Y),V)}catch(Z){}}return =
T(Y,X,V,W)};F.find=3DT.find;F.filter=3DT.filter;F.selectors=3DT.selectors=
;F.matches=3DT.matches})()}if(document.getElementsByClassName&&document.d=
ocumentElement.getElementsByClassName){(function(){var =
T=3Ddocument.createElement("div");T.innerHTML=3D"<div class=3D'test =
e'></div><div =
class=3D'test'></div>";if(T.getElementsByClassName("e").length=3D=3D=3D0)=
{return}T.lastChild.className=3D"e";if(T.getElementsByClassName("e").leng=
th=3D=3D=3D1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=3Dfunction(=
U,V,W){if(typeof V.getElementsByClassName!=3D=3D"undefined"&&!W){return =
V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var =
ab=3DU=3D=3D"previousSibling"&&!ac;for(var =
W=3D0,V=3Dad.length;W<V;W++){var =
T=3Dad[W];if(T){if(ab&&T.nodeType=3D=3D=3D1){T.sizcache=3DY;T.sizset=3DW}=
T=3DT[U];var =
X=3Dfalse;while(T){if(T.sizcache=3D=3D=3DY){X=3Dad[T.sizset];break}if(T.n=
odeType=3D=3D=3D1&&!ac){T.sizcache=3DY;T.sizset=3DW}if(T.nodeName=3D=3D=3D=
Z){X=3DT;break}T=3DT[U]}ad[W]=3DX}}}function S(U,Z,Y,ad,aa,ac){var =
ab=3DU=3D=3D"previousSibling"&&!ac;for(var =
W=3D0,V=3Dad.length;W<V;W++){var =
T=3Dad[W];if(T){if(ab&&T.nodeType=3D=3D=3D1){T.sizcache=3DY;T.sizset=3DW}=
T=3DT[U];var =
X=3Dfalse;while(T){if(T.sizcache=3D=3D=3DY){X=3Dad[T.sizset];break}if(T.n=
odeType=3D=3D=3D1){if(!ac){T.sizcache=3DY;T.sizset=3DW}if(typeof =
Z!=3D=3D"string"){if(T=3D=3D=3DZ){X=3Dtrue;break}}else{if(F.filter(Z,[T])=
.length>0){X=3DT;break}}}T=3DT[U]}ad[W]=3DX}}}var =
K=3Ddocument.compareDocumentPosition?function(U,T){return =
U.compareDocumentPosition(T)&16}:function(U,T){return =
U!=3D=3DT&&(U.contains?U.contains(T):true)};var Q=3Dfunction(T){return =
T.nodeType=3D=3D=3D9&&T.documentElement.nodeName!=3D=3D"HTML"||!!T.ownerD=
ocument&&Q(T.ownerDocument)};var J=3Dfunction(T,aa){var =
W=3D[],X=3D"",Y,V=3Daa.nodeType?[aa]:aa;while((Y=3DI.match.PSEUDO.exec(T)=
)){X+=3DY[0];T=3DT.replace(I.match.PSEUDO,"")}T=3DI.relative[T]?T+"*":T;f=
or(var Z=3D0,U=3DV.length;Z<U;Z++){F(T,V[Z],W)}return =
F.filter(X,W)};o.find=3DF;o.filter=3DF.filter;o.expr=3DF.selectors;o.expr=
[":"]=3Do.expr.filters;F.selectors.filters.hidden=3Dfunction(T){return =
T.offsetWidth=3D=3D=3D0||T.offsetHeight=3D=3D=3D0};F.selectors.filters.vi=
sible=3Dfunction(T){return =
T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=3Dfunctio=
n(T){return o.grep(o.timers,function(U){return =
T=3D=3D=3DU.elem}).length};o.multiFilter=3Dfunction(V,T,U){if(U){V=3D":no=
t("+V+")"}return F.matches(V,T)};o.dir=3Dfunction(V,U){var =
T=3D[],W=3DV[U];while(W&&W!=3Ddocument){if(W.nodeType=3D=3D1){T.push(W)}W=
=3DW[U]}return T};o.nth=3Dfunction(X,T,V,W){T=3DT||1;var =
U=3D0;for(;X;X=3DX[V]){if(X.nodeType=3D=3D1&&++U=3D=3DT){break}}return =
X};o.sibling=3Dfunction(V,U){var =
T=3D[];for(;V;V=3DV.nextSibling){if(V.nodeType=3D=3D1&&V!=3DU){T.push(V)}=
}return =
T};return;l.Sizzle=3DF})();o.event=3D{add:function(I,F,H,K){if(I.nodeType=
=3D=3D3||I.nodeType=3D=3D8){return}if(I.setInterval&&I!=3Dl){I=3Dl}if(!H.=
guid){H.guid=3Dthis.guid++}if(K!=3D=3Dg){var =
G=3DH;H=3Dthis.proxy(G);H.data=3DK}var =
E=3Do.data(I,"events")||o.data(I,"events",{}),J=3Do.data(I,"handle")||o.d=
ata(I,"handle",function(){return typeof =
o!=3D=3D"undefined"&&!o.event.triggered?o.event.handle.apply(arguments.ca=
llee.elem,arguments):g});J.elem=3DI;o.each(F.split(/\s+/),function(M,N){v=
ar =
O=3DN.split(".");N=3DO.shift();H.type=3DO.slice().sort().join(".");var =
L=3DE[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O=
)}if(!L){L=3DE[N]=3D{};if(!o.event.special[N]||o.event.special[N].setup.c=
all(I,K,O)=3D=3D=3Dfalse){if(I.addEventListener){I.addEventListener(N,J,f=
alse)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=3DH;o.e=
vent.global[N]=3Dtrue});I=3Dnull},guid:1,global:{},remove:function(K,H,J)=
{if(K.nodeType=3D=3D3||K.nodeType=3D=3D8){return}var =
G=3Do.data(K,"events"),F,E;if(G){if(H=3D=3D=3Dg||(typeof =
H=3D=3D=3D"string"&&H.charAt(0)=3D=3D".")){for(var I in =
G){this.remove(K,I+(H||""))}}else{if(H.type){J=3DH.handler;H=3DH.type}o.e=
ach(H.split(/\s+/),function(M,O){var Q=3DO.split(".");O=3DQ.shift();var =
N=3DRegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){i=
f(J){delete G[O][J.guid]}else{for(var P in =
G[O]){if(N.test(G[O][P].type)){delete =
G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K=
,Q)}for(F in =
G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.ca=
ll(K,Q)=3D=3D=3Dfalse){if(K.removeEventListener){K.removeEventListener(O,=
o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.d=
ata(K,"handle"))}}}F=3Dnull;delete G[O]}}})}for(F in G){break}if(!F){var =
L=3Do.data(K,"handle");if(L){L.elem=3Dnull}o.removeData(K,"events");o.rem=
oveData(K,"handle")}}},trigger:function(I,K,H,E){var =
G=3DI.type||I;if(!E){I=3Dtypeof =
I=3D=3D=3D"object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf(=
"!")>=3D0){I.type=3DG=3DG.slice(0,-1);I.exclusive=3Dtrue}if(!H){I.stopPro=
pagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&t=
his.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeTyp=
e=3D=3D3||H.nodeType=3D=3D8){return =
g}I.result=3Dg;I.target=3DH;K=3Do.makeArray(K);K.unshift(I)}I.currentTarg=
et=3DH;var =
J=3Do.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&=
G=3D=3D"click"))&&H["on"+G]&&H["on"+G].apply(H,K)=3D=3D=3Dfalse){I.result=
=3Dfalse}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=3D=3D=
"click")){this.triggered=3Dtrue;try{H[G]()}catch(L){}}this.triggered=3Dfa=
lse;if(!I.isPropagationStopped()){var =
F=3DH.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},ha=
ndle:function(K){var =
J,E;K=3Darguments[0]=3Do.event.fix(K||l.event);K.currentTarget=3Dthis;var=
 =
L=3DK.type.split(".");K.type=3DL.shift();J=3D!L.length&&!K.exclusive;var =
I=3DRegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=3D(o.dat=
a(this,"events")||{})[K.type];for(var G in E){var =
H=3DE[G];if(J||I.test(H.type)){K.handler=3DH;K.data=3DH.data;var =
F=3DH.apply(this,arguments);if(F!=3D=3Dg){K.result=3DF;if(F=3D=3D=3Dfalse=
){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStop=
ped()){break}}}},props:"altKey attrChange attrName bubbles button =
cancelable charCode clientX clientY ctrlKey currentTarget data detail =
eventPhase fromElement handler keyCode metaKey newValue originalTarget =
pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey =
srcElement target toElement view wheelDelta which".split(" =
"),fix:function(H){if(H[h]){return H}var F=3DH;H=3Do.Event(F);for(var =
G=3Dthis.props.length,J;G;){J=3Dthis.props[--G];H[J]=3DF[J]}if(!H.target)=
{H.target=3DH.srcElement||document}if(H.target.nodeType=3D=3D3){H.target=3D=
H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=3D=
H.fromElement=3D=3DH.target?H.toElement:H.fromElement}if(H.pageX=3D=3Dnul=
l&&H.clientX!=3Dnull){var =
I=3Ddocument.documentElement,E=3Ddocument.body;H.pageX=3DH.clientX+(I&&I.=
scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=3DH.clientY+(I&=
&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCo=
de||H.charCode=3D=3D=3D0)?H.charCode:H.keyCode)){H.which=3DH.charCode||H.=
keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=3DH.ctrlKey}if(!H.which&&H.bu=
tton){H.which=3D(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return =
H},proxy:function(F,E){E=3DE||function(){return =
F.apply(this,arguments)};E.guid=3DF.guid=3DF.guid||E.guid||this.guid++;re=
turn =
E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setu=
p:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.lengt=
h){var =
E=3D0,F=3DRegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").=
live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(=
this,G[0],c)}}}}}};o.Event=3Dfunction(E){if(!this.preventDefault){return =
new =
o.Event(E)}if(E&&E.type){this.originalEvent=3DE;this.type=3DE.type}else{t=
his.type=3DE}this.timeStamp=3De();this[h]=3Dtrue};function k(){return =
false}function u(){return =
true}o.Event.prototype=3D{preventDefault:function(){this.isDefaultPrevent=
ed=3Du;var =
E=3Dthis.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefaul=
t()}E.returnValue=3Dfalse},stopPropagation:function(){this.isPropagationS=
topped=3Du;var =
E=3Dthis.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagat=
ion()}E.cancelBubble=3Dtrue},stopImmediatePropagation:function(){this.isI=
mmediatePropagationStopped=3Du;this.stopPropagation()},isDefaultPrevented=
:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var =
a=3Dfunction(F){var =
E=3DF.relatedTarget;while(E&&E!=3Dthis){try{E=3DE.parentNode}catch(G){E=3D=
this}}if(E!=3Dthis){F.type=3DF.data;o.event.handle.apply(this,arguments)}=
};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.e=
vent.special[E]=3D{setup:function(){o.event.add(this,F,a,E)},teardown:fun=
ction(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){re=
turn =
F=3D=3D"unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E=
||G,E&&G)})},one:function(G,H,F){var =
E=3Do.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply=
(this,arguments)});return =
this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){r=
eturn =
this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){re=
turn =
this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function=
(E,G){if(this[0]){var =
F=3Do.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G=
,this[0]);return F.result}},toggle:function(G){var =
E=3Darguments,F=3D1;while(F<E.length){o.event.proxy(G,E[F++])}return =
this.click(o.event.proxy(G,function(H){this.lastToggle=3D(this.lastToggle=
||0)%F;H.preventDefault();return =
E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F)=
{return =
this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.c=
all(document,o)}else{o.readyList.push(E)}return =
this},live:function(G,F){var =
E=3Do.event.proxy(F);E.guid+=3Dthis.selector+G;o(document).bind(i(G,this.=
selector),this.selector,E);return =
this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.g=
uid+this.selector+F}:null);return this}});function c(H){var =
E=3DRegExp("(^|\\.)"+H.type+"(\\.|$)"),G=3Dtrue,F=3D[];o.each(o.data(this=
,"events").live||[],function(I,J){if(E.test(J.type)){var =
K=3Do(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort=
(function(J,I){return =
o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){i=
f(this.fn.call(this.elem,H,this.fn.data)=3D=3D=3Dfalse){return(G=3Dfalse)=
}});return G}function =
i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ =
/g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){=
if(!o.isReady){o.isReady=3Dtrue;if(o.readyList){o.each(o.readyList,functi=
on(){this.call(document,o)});o.readyList=3Dnull}o(document).triggerHandle=
r("ready")}}});var x=3Dfalse;function =
B(){if(x){return}x=3Dtrue;if(document.addEventListener){document.addEvent=
Listener("DOMContentLoaded",function(){document.removeEventListener("DOMC=
ontentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.=
attachEvent){document.attachEvent("onreadystatechange",function(){if(docu=
ment.readyState=3D=3D=3D"complete"){document.detachEvent("onreadystatecha=
nge",arguments.callee);o.ready()}});if(document.documentElement.doScroll&=
&l=3D=3Dl.top){(function(){if(o.isReady){return}try{document.documentElem=
ent.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.rea=
dy()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,=
scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseo=
ut,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,erro=
r").split(","),function(F,E){o.fn[E]=3Dfunction(G){return =
G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var=
 E in =
o.cache){if(E!=3D1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.e=
lem)}}});(function(){o.support=3D{};var =
F=3Ddocument.documentElement,G=3Ddocument.createElement("script"),K=3Ddoc=
ument.createElement("div"),J=3D"script"+(new =
Date).getTime();K.style.display=3D"none";K.innerHTML=3D'   =
<link/><table></table><a href=3D"/a" =
style=3D"color:red;float:left;opacity:.5;">a</a><select><option>text</opt=
ion></select><object><param/></object>';var =
H=3DK.getElementsByTagName("*"),E=3DK.getElementsByTagName("a")[0];if(!H|=
|!H.length||!E){return}o.support=3D{leadingWhitespace:K.firstChild.nodeTy=
pe=3D=3D3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.get=
ElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSeria=
lize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttrib=
ute("style")),hrefNormalized:E.getAttribute("href")=3D=3D=3D"/a",opacity:=
E.style.opacity=3D=3D=3D"0.5",cssFloat:!!E.style.cssFloat,scriptEval:fals=
e,noCloneEvent:true,boxModel:null};G.type=3D"text/javascript";try{G.appen=
dChild(document.createTextNode("window."+J+"=3D1;"))}catch(I){}F.insertBe=
fore(G,F.firstChild);if(l[J]){o.support.scriptEval=3Dtrue;delete =
l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("oncli=
ck",function(){o.support.noCloneEvent=3Dfalse;K.detachEvent("onclick",arg=
uments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var =
L=3Ddocument.createElement("div");L.style.width=3DL.style.paddingLeft=3D"=
1px";document.body.appendChild(L);o.boxModel=3Do.support.boxModel=3DL.off=
setWidth=3D=3D=3D2;document.body.removeChild(L).style.display=3D"none"})}=
)();var =
w=3Do.support.cssFloat?"cssFloat":"styleFloat";o.props=3D{"for":"htmlFor"=
,"class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly=
",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabin=
dex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(type=
of G!=3D=3D"string"){return this._load(G)}var I=3DG.indexOf(" =
");if(I>=3D0){var E=3DG.slice(I,G.length);G=3DG.slice(0,I)}var =
H=3D"GET";if(J){if(o.isFunction(J)){K=3DJ;J=3Dnull}else{if(typeof =
J=3D=3D=3D"object"){J=3Do.param(J);H=3D"POST"}}}var =
F=3Dthis;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,=
L){if(L=3D=3D"success"||L=3D=3D"notmodified"){F.html(E?o("<div/>").append=
(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.respon=
seText)}if(K){F.each(K,[M.responseText,L,M])}}});return =
this},serialize:function(){return =
o.param(this.serializeArray())},serializeArray:function(){return =
this.map(function(){return =
this.elements?o.makeArray(this.elements):this}).filter(function(){return =
this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.no=
deName)||/text|hidden|password|search/i.test(this.type))}).map(function(E=
,F){var G=3Do(this).val();return =
G=3D=3Dnull?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,va=
lue:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajax=
Complete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=
=3Dfunction(G){return this.bind(F,G)}});var =
r=3De();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=3DG;G=3Dnul=
l}return =
o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:functio=
n(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return =
o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=3DG;G=3D=
{}}return =
o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:functi=
on(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:=
true,type:"GET",contentType:"application/x-www-form-urlencoded",processDa=
ta:true,async:true,xhr:function(){return l.ActiveXObject?new =
ActiveXObject("Microsoft.XMLHTTP"):new =
XMLHttpRequest()},accepts:{xml:"application/xml, =
text/xml",html:"text/html",script:"text/javascript, =
application/javascript",json:"application/json, =
text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:=
function(M){M=3Do.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var =
W,F=3D/=3D\?(&|$)/g,R,V,G=3DM.type.toUpperCase();if(M.data&&M.processData=
&&typeof =
M.data!=3D=3D"string"){M.data=3Do.param(M.data)}if(M.dataType=3D=3D"jsonp=
"){if(G=3D=3D"GET"){if(!M.url.match(F)){M.url+=3D(M.url.match(/\?/)?"&":"=
?")+(M.jsonp||"callback")+"=3D?"}}else{if(!M.data||!M.data.match(F)){M.da=
ta=3D(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=3D?"}}M.dataType=3D"j=
son"}if(M.dataType=3D=3D"json"&&(M.data&&M.data.match(F)||M.url.match(F))=
){W=3D"jsonp"+r++;if(M.data){M.data=3D(M.data+"").replace(F,"=3D"+W+"$1")=
}M.url=3DM.url.replace(F,"=3D"+W+"$1");M.dataType=3D"script";l[W]=3Dfunct=
ion(X){V=3DX;I();L();l[W]=3Dg;try{delete =
l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=3D=3D"script"&&M.ca=
che=3D=3Dnull){M.cache=3Dfalse}if(M.cache=3D=3D=3Dfalse&&G=3D=3D"GET"){va=
r E=3De();var =
U=3DM.url.replace(/(\?|&)_=3D.*?(&|$)/,"$1_=3D"+E+"$2");M.url=3DU+((U=3D=3D=
M.url)?(M.url.match(/\?/)?"&":"?")+"_=3D"+E:"")}if(M.data&&G=3D=3D"GET"){=
M.url+=3D(M.url.match(/\?/)?"&":"?")+M.data;M.data=3Dnull}if(M.global&&!o=
.active++){o.event.trigger("ajaxStart")}var =
Q=3D/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=3D=3D"script"&&G=3D=
=3D"GET"&&Q&&(Q[1]&&Q[1]!=3Dlocation.protocol||Q[2]!=3Dlocation.host)){va=
r H=3Ddocument.getElementsByTagName("head")[0];var =
T=3Ddocument.createElement("script");T.src=3DM.url;if(M.scriptCharset){T.=
charset=3DM.scriptCharset}if(!W){var =
O=3Dfalse;T.onload=3DT.onreadystatechange=3Dfunction(){if(!O&&(!this.read=
yState||this.readyState=3D=3D"loaded"||this.readyState=3D=3D"complete")){=
O=3Dtrue;I();L();T.onload=3DT.onreadystatechange=3Dnull;H.removeChild(T)}=
}}H.appendChild(T);return g}var K=3Dfalse;var =
J=3DM.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}=
else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-T=
ype",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Sinc=
e",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 =
GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setReques=
tHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+=
", =
*/*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)=3D=3D=
=3Dfalse){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort()=
;return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var =
N=3Dfunction(X){if(J.readyState=3D=3D0){if(P){clearInterval(P);P=3Dnull;i=
f(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.=
readyState=3D=3D4||X=3D=3D"timeout")){K=3Dtrue;if(P){clearInterval(P);P=3D=
null}R=3DX=3D=3D"timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModifie=
d&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=3D=3D"success"=
){try{V=3Do.httpData(J,M.dataType,M)}catch(Z){R=3D"parsererror"}}if(R=3D=3D=
"success"){var =
Y;try{Y=3DJ.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&=
&Y){o.lastModified[M.url]=3DY}if(!W){I()}}else{o.handleError(M,J,R)}L();i=
f(X){J.abort()}if(M.async){J=3Dnull}}}};if(M.async){var =
P=3DsetInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("=
timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,nul=
l,S)}if(!M.async){N()}function =
I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSucces=
s",[J,M])}}function =
L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComp=
lete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}retur=
n =
J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){=
o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){t=
ry{return =
!F.status&&location.protocol=3D=3D"file:"||(F.status>=3D200&&F.status<300=
)||F.status=3D=3D304||F.status=3D=3D1223}catch(E){}return =
false},httpNotModified:function(G,E){try{var =
H=3DG.getResponseHeader("Last-Modified");return =
G.status=3D=3D304||H=3D=3Do.lastModified[E]}catch(F){}return =
false},httpData:function(J,H,G){var =
F=3DJ.getResponseHeader("content-type"),E=3DH=3D=3D"xml"||!H&&F&&F.indexO=
f("xml")>=3D0,I=3DE?J.responseXML:J.responseText;if(E&&I.documentElement.=
tagName=3D=3D"parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=3DG.=
dataFilter(I,H)}if(typeof =
I=3D=3D=3D"string"){if(H=3D=3D"script"){o.globalEval(I)}if(H=3D=3D"json")=
{I=3Dl["eval"]("("+I+")")}}return I},param:function(E){var =
G=3D[];function =
H(I,J){G[G.length]=3DencodeURIComponent(I)+"=3D"+encodeURIComponent(J)}if=
(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}el=
se{for(var F in =
E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFu=
nction(E[F])?E[F]():E[F])}}}return =
G.join("&").replace(/%20/g,"+")}});var =
m=3D{},n,d=3D[["height","marginTop","marginBottom","paddingTop","paddingB=
ottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"]=
,["opacity"]];function t(F,E){var =
G=3D{};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=3DF});re=
turn G}o.fn.extend({show:function(J,L){if(J){return =
this.animate(t("show",3),J,L)}else{for(var =
H=3D0,F=3Dthis.length;H<F;H++){var =
E=3Do.data(this[H],"olddisplay");this[H].style.display=3DE||"";if(o.css(t=
his[H],"display")=3D=3D=3D"none"){var =
G=3Dthis[H].tagName,K;if(m[G]){K=3Dm[G]}else{var I=3Do("<"+G+" =
/>").appendTo("body");K=3DI.css("display");if(K=3D=3D=3D"none"){K=3D"bloc=
k"}I.remove();m[G]=3DK}o.data(this[H],"olddisplay",K)}}for(var =
H=3D0,F=3Dthis.length;H<F;H++){this[H].style.display=3Do.data(this[H],"ol=
ddisplay")||""}return this}},hide:function(H,I){if(H){return =
this.animate(t("hide",3),H,I)}else{for(var =
G=3D0,F=3Dthis.length;G<F;G++){var =
E=3Do.data(this[G],"olddisplay");if(!E&&E!=3D=3D"none"){o.data(this[G],"o=
lddisplay",o.css(this[G],"display"))}}for(var =
G=3D0,F=3Dthis.length;G<F;G++){this[G].style.display=3D"none"}return =
this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=3Dtypeof =
G=3D=3D=3D"boolean";return =
o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G=3D=3D=
null||E?this.each(function(){var =
H=3DE?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t=
("toggle",3),G,F)},fadeTo:function(E,G,F){return =
this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var =
E=3Do.speed(F,H,G);return =
this[E.queue=3D=3D=3Dfalse?"each":"queue"](function(){var =
K=3Do.extend({},E),M,L=3Dthis.nodeType=3D=3D1&&o(this).is(":hidden"),J=3D=
this;for(M in I){if(I[M]=3D=3D"hide"&&L||I[M]=3D=3D"show"&&!L){return =
K.complete.call(this)}if((M=3D=3D"height"||M=3D=3D"width")&&this.style){K=
.display=3Do.css(this,"display");K.overflow=3Dthis.style.overflow}}if(K.o=
verflow!=3Dnull){this.style.overflow=3D"hidden"}K.curAnim=3Do.extend({},I=
);o.each(I,function(O,S){var R=3Dnew =
o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=3D=3D"toggle"?L?"show":"hi=
de":S](I)}else{var =
Q=3DS.toString().match(/^([+-]=3D)?([\d+-.]+)(.*)$/),T=3DR.cur(true)||0;i=
f(Q){var =
N=3DparseFloat(Q[2]),P=3DQ[3]||"px";if(P!=3D"px"){J.style[O]=3D(N||1)+P;T=
=3D((N||1)/R.cur(true))*T;J.style[O]=3DT+P}if(Q[1]){N=3D((Q[1]=3D=3D"-=3D=
"?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return =
true})},stop:function(F,E){var =
G=3Do.timers;if(F){this.queue([])}this.each(function(){for(var =
H=3DG.length-1;H>=3D0;H--){if(G[H].elem=3D=3Dthis){if(E){G[H](true)}G.spl=
ice(H,1)}}});if(!E){this.dequeue()}return =
this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("=
toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F=
){o.fn[E]=3Dfunction(G,H){return =
this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=3Dtypeof =
G=3D=3D=3D"object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,ea=
sing:F&&H||H&&!o.isFunction(H)&&H};E.duration=3Do.fx.off?0:typeof =
E.duration=3D=3D=3D"number"?E.duration:o.fx.speeds[E.duration]||o.fx.spee=
ds._default;E.old=3DE.complete;E.complete=3Dfunction(){if(E.queue!=3D=3Df=
alse){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return=
 E},easing:{linear:function(G,H,E,F){return =
E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}}=
,timers:[],fx:function(F,E,G){this.options=3DE;this.elem=3DF;this.prop=3D=
G;if(!E.orig){E.orig=3D{}}}});o.fx.prototype=3D{update:function(){if(this=
.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step=
[this.prop]||o.fx.step._default)(this);if((this.prop=3D=3D"height"||this.=
prop=3D=3D"width")&&this.elem.style){this.elem.style.display=3D"block"}},=
cur:function(F){if(this.elem[this.prop]!=3Dnull&&(!this.elem.style||this.=
elem.style[this.prop]=3D=3Dnull)){return this.elem[this.prop]}var =
E=3DparseFloat(o.css(this.elem,this.prop,F));return =
E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:functi=
on(I,H,G){this.startTime=3De();this.start=3DI;this.end=3DH;this.unit=3DG|=
|this.unit||"px";this.now=3Dthis.start;this.pos=3Dthis.state=3D0;var =
E=3Dthis;function F(J){return =
E.step(J)}F.elem=3Dthis.elem;if(F()&&o.timers.push(F)&&!n){n=3DsetInterva=
l(function(){var K=3Do.timers;for(var =
J=3D0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInt=
erval(n);n=3Dg}},13)}},show:function(){this.options.orig[this.prop]=3Do.a=
ttr(this.elem.style,this.prop);this.options.show=3Dtrue;this.custom(this.=
prop=3D=3D"width"||this.prop=3D=3D"height"?1:0,this.cur());o(this.elem).s=
how()},hide:function(){this.options.orig[this.prop]=3Do.attr(this.elem.st=
yle,this.prop);this.options.hide=3Dtrue;this.custom(this.cur(),0)},step:f=
unction(H){var =
G=3De();if(H||G>=3Dthis.options.duration+this.startTime){this.now=3Dthis.=
end;this.pos=3Dthis.state=3D1;this.update();this.options.curAnim[this.pro=
p]=3Dtrue;var E=3Dtrue;for(var F in =
this.options.curAnim){if(this.options.curAnim[F]!=3D=3Dtrue){E=3Dfalse}}i=
f(E){if(this.options.display!=3Dnull){this.elem.style.overflow=3Dthis.opt=
ions.overflow;this.elem.style.display=3Dthis.options.display;if(o.css(thi=
s.elem,"display")=3D=3D"none"){this.elem.style.display=3D"block"}}if(this=
.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.sho=
w){for(var I in =
this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}thi=
s.options.complete.call(this.elem)}return false}else{var =
J=3DG-this.startTime;this.state=3DJ/this.options.duration;this.pos=3Do.ea=
sing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J=
,0,1,this.options.duration);this.now=3Dthis.start+((this.end-this.start)*=
this.pos);this.update()}return =
true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opaci=
ty:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E)=
{if(E.elem.style&&E.elem.style[E.prop]!=3Dnull){E.elem.style[E.prop]=3DE.=
now+E.unit}else{E.elem[E.prop]=3DE.now}}}});if(document.documentElement.g=
etBoundingClientRect){o.fn.offset=3Dfunction(){if(!this[0]){return{top:0,=
left:0}}if(this[0]=3D=3D=3Dthis[0].ownerDocument.body){return =
o.offset.bodyOffset(this[0])}var =
G=3Dthis[0].getBoundingClientRect(),J=3Dthis[0].ownerDocument,F=3DJ.body,=
E=3DJ.documentElement,L=3DE.clientTop||F.clientTop||0,K=3DE.clientLeft||F=
.clientLeft||0,I=3DG.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.sc=
rollTop)-L,H=3DG.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scro=
llLeft)-K;return{top:I,left:H}}}else{o.fn.offset=3Dfunction(){if(!this[0]=
){return{top:0,left:0}}if(this[0]=3D=3D=3Dthis[0].ownerDocument.body){ret=
urn =
o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();=
var =
J=3Dthis[0],G=3DJ.offsetParent,F=3DJ,O=3DJ.ownerDocument,M,H=3DO.document=
Element,K=3DO.body,L=3DO.defaultView,E=3DL.getComputedStyle(J,null),N=3DJ=
.offsetTop,I=3DJ.offsetLeft;while((J=3DJ.parentNode)&&J!=3D=3DK&&J!=3D=3D=
H){M=3DL.getComputedStyle(J,null);N-=3DJ.scrollTop,I-=3DJ.scrollLeft;if(J=
=3D=3D=3DG){N+=3DJ.offsetTop,I+=3DJ.offsetLeft;if(o.offset.doesNotAddBord=
er&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tag=
Name))){N+=3DparseInt(M.borderTopWidth,10)||0,I+=3DparseInt(M.borderLeftW=
idth,10)||0}F=3DG,G=3DJ.offsetParent}if(o.offset.subtractsBorderForOverfl=
owNotVisible&&M.overflow!=3D=3D"visible"){N+=3DparseInt(M.borderTopWidth,=
10)||0,I+=3DparseInt(M.borderLeftWidth,10)||0}E=3DM}if(E.position=3D=3D=3D=
"relative"||E.position=3D=3D=3D"static"){N+=3DK.offsetTop,I+=3DK.offsetLe=
ft}if(E.position=3D=3D=3D"fixed"){N+=3DMath.max(H.scrollTop,K.scrollTop),=
I+=3DMath.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset=3D=
{initialize:function(){if(this.initialized){return}var =
L=3Ddocument.body,F=3Ddocument.createElement("div"),H,G,N,I,M,E,J=3DL.sty=
le.marginTop,K=3D'<div =
style=3D"position:absolute;top:0;left:0;margin:0;border:5px solid =
#000;padding:0;width:1px;height:1px;"><div></div></div><table =
style=3D"position:absolute;top:0;left:0;margin:0;border:5px solid =
#000;padding:0;width:1px;height:1px;" cellpadding=3D"0" =
cellspacing=3D"0"><tr><td></td></tr></table>';M=3D{position:"absolute",to=
p:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"=
};for(E in =
M){F.style[E]=3DM[E]}F.innerHTML=3DK;L.insertBefore(F,L.firstChild);H=3DF=
.firstChild,G=3DH.firstChild,I=3DH.nextSibling.firstChild.firstChild;this=
.doesNotAddBorder=3D(G.offsetTop!=3D=3D5);this.doesAddBorderForTableAndCe=
lls=3D(I.offsetTop=3D=3D=3D5);H.style.overflow=3D"hidden",H.style.positio=
n=3D"relative";this.subtractsBorderForOverflowNotVisible=3D(G.offsetTop=3D=
=3D=3D-5);L.style.marginTop=3D"1px";this.doesNotIncludeMarginInBodyOffset=
=3D(L.offsetTop=3D=3D=3D0);L.style.marginTop=3DJ;L.removeChild(F);this.in=
itialized=3Dtrue},bodyOffset:function(E){o.offset.initialized||o.offset.i=
nitialize();var =
G=3DE.offsetTop,F=3DE.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOf=
fset){G+=3DparseInt(o.curCSS(E,"marginTop",true),10)||0,F+=3DparseInt(o.c=
urCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({pos=
ition:function(){var I=3D0,H=3D0,F;if(this[0]){var =
G=3Dthis.offsetParent(),J=3Dthis.offset(),E=3D/^body|html$/i.test(G[0].ta=
gName)?{top:0,left:0}:G.offset();J.top-=3Dj(this,"marginTop");J.left-=3Dj=
(this,"marginLeft");E.top+=3Dj(G,"borderTopWidth");E.left+=3Dj(G,"borderL=
eftWidth");F=3D{top:J.top-E.top,left:J.left-E.left}}return =
F},offsetParent:function(){var =
E=3Dthis[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.=
tagName)&&o.css(E,"position")=3D=3D"static")){E=3DE.offsetParent}return =
o(E)}});o.each(["Left","Top"],function(F,E){var =
G=3D"scroll"+E;o.fn[G]=3Dfunction(H){if(!this[0]){return null}return =
H!=3D=3Dg?this.each(function(){this=3D=3Dl||this=3D=3Ddocument?l.scrollTo=
(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=3DH}):this[0]=3D=3D=
l||this[0]=3D=3Ddocument?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&=
&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Hei=
ght","Width"],function(I,G){var =
E=3DI?"Left":"Top",H=3DI?"Right":"Bottom",F=3DG.toLowerCase();o.fn["inner=
"+G]=3Dfunction(){return =
this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=3Dfunction=
(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var =
J=3DG.toLowerCase();o.fn[J]=3Dfunction(K){return =
this[0]=3D=3Dl?document.compatMode=3D=3D"CSS1Compat"&&document.documentEl=
ement["client"+G]||document.body["client"+G]:this[0]=3D=3Ddocument?Math.m=
ax(document.documentElement["client"+G],document.body["scroll"+G],documen=
t.documentElement["scroll"+G],document.body["offset"+G],document.document=
Element["offset"+G]):K=3D=3D=3Dg?(this.length?o.css(this[0],J):null):this=
.css(J,typeof K=3D=3D=3D"string"?K:K+"px")}})})();
------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/include/jquery/jquery.form.js

/*!=0A=
 * jQuery Form Plugin=0A=
 * version: 2.43 (12-MAR-2010)=0A=
 * @requires jQuery v1.3.2 or later=0A=
 *=0A=
 * Examples and documentation at: http://malsup.com/jquery/form/=0A=
 * Dual licensed under the MIT and GPL licenses:=0A=
 *   http://www.opensource.org/licenses/mit-license.php=0A=
 *   http://www.gnu.org/licenses/gpl.html=0A=
 */=0A=
;(function($) {=0A=
=0A=
/*=0A=
	Usage Note:=0A=
	-----------=0A=
	Do not use both ajaxSubmit and ajaxForm on the same form.  These=0A=
	functions are intended to be exclusive.  Use ajaxSubmit if you want=0A=
	to bind your own submit handler to the form.  For example,=0A=
=0A=
	$(document).ready(function() {=0A=
		$('#myForm').bind('submit', function() {=0A=
			$(this).ajaxSubmit({=0A=
				target: '#output'=0A=
			});=0A=
			return false; // <-- important!=0A=
		});=0A=
	});=0A=
=0A=
	Use ajaxForm when you want the plugin to manage all the event binding=0A=
	for you.  For example,=0A=
=0A=
	$(document).ready(function() {=0A=
		$('#myForm').ajaxForm({=0A=
			target: '#output'=0A=
		});=0A=
	});=0A=
=0A=
	When using ajaxForm, the ajaxSubmit function will be invoked for you=0A=
	at the appropriate time.=0A=
*/=0A=
=0A=
/**=0A=
 * ajaxSubmit() provides a mechanism for immediately submitting=0A=
 * an HTML form using AJAX.=0A=
 */=0A=
$.fn.ajaxSubmit =3D function(options) {=0A=
	// fast fail if nothing selected (http://dev.jquery.com/ticket/2752)=0A=
	if (!this.length) {=0A=
		log('ajaxSubmit: skipping submit process - no element selected');=0A=
		return this;=0A=
	}=0A=
=0A=
	if (typeof options =3D=3D 'function')=0A=
		options =3D { success: options };=0A=
=0A=
	var url =3D $.trim(this.attr('action'));=0A=
	if (url) {=0A=
		// clean url (don't include hash vaue)=0A=
		url =3D (url.match(/^([^#]+)/)||[])[1];=0A=
   	}=0A=
   	url =3D url || window.location.href || '';=0A=
=0A=
	options =3D $.extend({=0A=
		url:  url,=0A=
		type: this.attr('method') || 'GET',=0A=
		iframeSrc: /^https/i.test(window.location.href || '') ? =
'javascript:false' : 'about:blank'=0A=
	}, options || {});=0A=
=0A=
	// hook for manipulating the form data before it is extracted;=0A=
	// convenient for use with rich editors like tinyMCE or FCKEditor=0A=
	var veto =3D {};=0A=
	this.trigger('form-pre-serialize', [this, options, veto]);=0A=
	if (veto.veto) {=0A=
		log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');=0A=
		return this;=0A=
	}=0A=
=0A=
	// provide opportunity to alter form data before it is serialized=0A=
	if (options.beforeSerialize && options.beforeSerialize(this, options) =
=3D=3D=3D false) {=0A=
		log('ajaxSubmit: submit aborted via beforeSerialize callback');=0A=
		return this;=0A=
	}=0A=
=0A=
	var a =3D this.formToArray(options.semantic);=0A=
	if (options.data) {=0A=
		options.extraData =3D options.data;=0A=
		for (var n in options.data) {=0A=
		  if(options.data[n] instanceof Array) {=0A=
			for (var k in options.data[n])=0A=
			  a.push( { name: n, value: options.data[n][k] } );=0A=
		  }=0A=
		  else=0A=
			 a.push( { name: n, value: options.data[n] } );=0A=
		}=0A=
	}=0A=
=0A=
	// give pre-submit callback an opportunity to abort the submit=0A=
	if (options.beforeSubmit && options.beforeSubmit(a, this, options) =
=3D=3D=3D false) {=0A=
		log('ajaxSubmit: submit aborted via beforeSubmit callback');=0A=
		return this;=0A=
	}=0A=
=0A=
	// fire vetoable 'validate' event=0A=
	this.trigger('form-submit-validate', [a, this, options, veto]);=0A=
	if (veto.veto) {=0A=
		log('ajaxSubmit: submit vetoed via form-submit-validate trigger');=0A=
		return this;=0A=
	}=0A=
=0A=
	var q =3D $.param(a);=0A=
=0A=
	if (options.type.toUpperCase() =3D=3D 'GET') {=0A=
		options.url +=3D (options.url.indexOf('?') >=3D 0 ? '&' : '?') + q;=0A=
		options.data =3D null;  // data is null for 'get'=0A=
	}=0A=
	else=0A=
		options.data =3D q; // data is the query string for 'post'=0A=
=0A=
	var $form =3D this, callbacks =3D [];=0A=
	if (options.resetForm) callbacks.push(function() { $form.resetForm(); =
});=0A=
	if (options.clearForm) callbacks.push(function() { $form.clearForm(); =
});=0A=
=0A=
	// perform a load on the target only if dataType is not provided=0A=
	if (!options.dataType && options.target) {=0A=
		var oldSuccess =3D options.success || function(){};=0A=
		callbacks.push(function(data) {=0A=
			var fn =3D options.replaceTarget ? 'replaceWith' : 'html';=0A=
			$(options.target)[fn](data).each(oldSuccess, arguments);=0A=
		});=0A=
	}=0A=
	else if (options.success)=0A=
		callbacks.push(options.success);=0A=
=0A=
	options.success =3D function(data, status, xhr) { // jQuery 1.4+ passes =
xhr as 3rd arg=0A=
		for (var i=3D0, max=3Dcallbacks.length; i < max; i++)=0A=
			callbacks[i].apply(options, [data, status, xhr || $form, $form]);=0A=
	};=0A=
=0A=
	// are there files to upload?=0A=
	var files =3D $('input:file', this).fieldValue();=0A=
	var found =3D false;=0A=
	for (var j=3D0; j < files.length; j++)=0A=
		if (files[j])=0A=
			found =3D true;=0A=
=0A=
	var multipart =3D false;=0A=
//	var mp =3D 'multipart/form-data';=0A=
//	multipart =3D ($form.attr('enctype') =3D=3D mp || =
$form.attr('encoding') =3D=3D mp);=0A=
=0A=
	// options.iframe allows user to force iframe mode=0A=
	// 06-NOV-09: now defaulting to iframe mode if file input is detected=0A=
   if ((files.length && options.iframe !=3D=3D false) || options.iframe =
|| found || multipart) {=0A=
	   // hack to fix Safari hang (thanks to Tim Molendijk for this)=0A=
	   // see:  =
http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab5=
10dd5d=0A=
	   if (options.closeKeepAlive)=0A=
		   $.get(options.closeKeepAlive, fileUpload);=0A=
	   else=0A=
		   fileUpload();=0A=
	   }=0A=
   else=0A=
	   $.ajax(options);=0A=
=0A=
	// fire 'notify' event=0A=
	this.trigger('form-submit-notify', [this, options]);=0A=
	return this;=0A=
=0A=
=0A=
	// private function for handling file uploads (hat tip to YAHOO!)=0A=
	function fileUpload() {=0A=
		var form =3D $form[0];=0A=
=0A=
		if ($(':input[name=3Dsubmit]', form).length) {=0A=
			alert('Error: Form elements must not be named "submit".');=0A=
			return;=0A=
		}=0A=
=0A=
		var opts =3D $.extend({}, $.ajaxSettings, options);=0A=
		var s =3D $.extend(true, {}, $.extend(true, {}, $.ajaxSettings), opts);=0A=
=0A=
		var id =3D 'jqFormIO' + (new Date().getTime());=0A=
		var $io =3D $('<iframe id=3D"' + id + '" name=3D"' + id + '" src=3D"'+ =
opts.iframeSrc +'" =
onload=3D"(jQuery(this).data(\'form-plugin-onload\'))()" />');=0A=
		var io =3D $io[0];=0A=
=0A=
		$io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });=0A=
=0A=
		var xhr =3D { // mock object=0A=
			aborted: 0,=0A=
			responseText: null,=0A=
			responseXML: null,=0A=
			status: 0,=0A=
			statusText: 'n/a',=0A=
			getAllResponseHeaders: function() {},=0A=
			getResponseHeader: function() {},=0A=
			setRequestHeader: function() {},=0A=
			abort: function() {=0A=
				this.aborted =3D 1;=0A=
				$io.attr('src', opts.iframeSrc); // abort op in progress=0A=
			}=0A=
		};=0A=
=0A=
		var g =3D opts.global;=0A=
		// trigger ajax global events so that activity/block indicators work =
like normal=0A=
		if (g && ! $.active++) $.event.trigger("ajaxStart");=0A=
		if (g) $.event.trigger("ajaxSend", [xhr, opts]);=0A=
=0A=
		if (s.beforeSend && s.beforeSend(xhr, s) =3D=3D=3D false) {=0A=
			s.global && $.active--;=0A=
			return;=0A=
		}=0A=
		if (xhr.aborted)=0A=
			return;=0A=
=0A=
		var cbInvoked =3D false;=0A=
		var timedOut =3D 0;=0A=
=0A=
		// add submitting element to data if we know it=0A=
		var sub =3D form.clk;=0A=
		if (sub) {=0A=
			var n =3D sub.name;=0A=
			if (n && !sub.disabled) {=0A=
				opts.extraData =3D opts.extraData || {};=0A=
				opts.extraData[n] =3D sub.value;=0A=
				if (sub.type =3D=3D "image") {=0A=
					opts.extraData[n+'.x'] =3D form.clk_x;=0A=
					opts.extraData[n+'.y'] =3D form.clk_y;=0A=
				}=0A=
			}=0A=
		}=0A=
=0A=
		// take a breath so that pending repaints get some cpu time before the =
upload starts=0A=
		function doSubmit() {=0A=
			// make sure form attrs are set=0A=
			var t =3D $form.attr('target'), a =3D $form.attr('action');=0A=
=0A=
			// update form attrs in IE friendly way=0A=
			form.setAttribute('target',id);=0A=
			if (form.getAttribute('method') !=3D 'POST')=0A=
				form.setAttribute('method', 'POST');=0A=
			if (form.getAttribute('action') !=3D opts.url)=0A=
				form.setAttribute('action', opts.url);=0A=
=0A=
			// ie borks in some cases when setting encoding=0A=
			if (! opts.skipEncodingOverride) {=0A=
				$form.attr({=0A=
					encoding: 'multipart/form-data',=0A=
					enctype:  'multipart/form-data'=0A=
				});=0A=
			}=0A=
=0A=
			// support timout=0A=
			if (opts.timeout)=0A=
				setTimeout(function() { timedOut =3D true; cb(); }, opts.timeout);=0A=
=0A=
			// add "extra" data to form if provided in options=0A=
			var extraInputs =3D [];=0A=
			try {=0A=
				if (opts.extraData)=0A=
					for (var n in opts.extraData)=0A=
						extraInputs.push(=0A=
							$('<input type=3D"hidden" name=3D"'+n+'" =
value=3D"'+opts.extraData[n]+'" />')=0A=
								.appendTo(form)[0]);=0A=
=0A=
				// add iframe to doc and submit the form=0A=
				$io.appendTo('body');=0A=
				$io.data('form-plugin-onload', cb);=0A=
				form.submit();=0A=
			}=0A=
			finally {=0A=
				// reset attrs and remove "extra" input elements=0A=
				form.setAttribute('action',a);=0A=
				t ? form.setAttribute('target', t) : $form.removeAttr('target');=0A=
				$(extraInputs).remove();=0A=
			}=0A=
		};=0A=
=0A=
		if (opts.forceSync)=0A=
			doSubmit();=0A=
		else=0A=
			setTimeout(doSubmit, 10); // this lets dom updates render=0A=
	=0A=
		var domCheckCount =3D 100;=0A=
=0A=
		function cb() {=0A=
			if (cbInvoked) =0A=
				return;=0A=
=0A=
			var ok =3D true;=0A=
			try {=0A=
				if (timedOut) throw 'timeout';=0A=
				// extract the server response from the iframe=0A=
				var data, doc;=0A=
=0A=
				doc =3D io.contentWindow ? io.contentWindow.document : =
io.contentDocument ? io.contentDocument : io.document;=0A=
				=0A=
				var isXml =3D opts.dataType =3D=3D 'xml' || doc.XMLDocument || =
$.isXMLDoc(doc);=0A=
				log('isXml=3D'+isXml);=0A=
				if (!isXml && (doc.body =3D=3D null || doc.body.innerHTML =3D=3D =
'')) {=0A=
				 	if (--domCheckCount) {=0A=
						// in some browsers (Opera) the iframe DOM is not always =
traversable when=0A=
						// the onload callback fires, so we loop a bit to accommodate=0A=
				 		log('requeing onLoad callback, DOM not available');=0A=
						setTimeout(cb, 250);=0A=
						return;=0A=
					}=0A=
					log('Could not access iframe DOM after 100 tries.');=0A=
					return;=0A=
				}=0A=
=0A=
				log('response detected');=0A=
				cbInvoked =3D true;=0A=
				xhr.responseText =3D doc.body ? doc.body.innerHTML : null;=0A=
				xhr.responseXML =3D doc.XMLDocument ? doc.XMLDocument : doc;=0A=
				xhr.getResponseHeader =3D function(header){=0A=
					var headers =3D {'content-type': opts.dataType};=0A=
					return headers[header];=0A=
				};=0A=
=0A=
				if (opts.dataType =3D=3D 'json' || opts.dataType =3D=3D 'script') {=0A=
					// see if user embedded response in textarea=0A=
					var ta =3D doc.getElementsByTagName('textarea')[0];=0A=
					if (ta)=0A=
						xhr.responseText =3D ta.value;=0A=
					else {=0A=
						// account for browsers injecting pre around json response=0A=
						var pre =3D doc.getElementsByTagName('pre')[0];=0A=
						if (pre)=0A=
							xhr.responseText =3D pre.innerHTML;=0A=
					}			  =0A=
				}=0A=
				else if (opts.dataType =3D=3D 'xml' && !xhr.responseXML && =
xhr.responseText !=3D null) {=0A=
					xhr.responseXML =3D toXml(xhr.responseText);=0A=
				}=0A=
				data =3D $.httpData(xhr, opts.dataType);=0A=
			}=0A=
			catch(e){=0A=
				log('error caught:',e);=0A=
				ok =3D false;=0A=
				xhr.error =3D e;=0A=
				$.handleError(opts, xhr, 'error', e);=0A=
			}=0A=
=0A=
			// ordering of these callbacks/triggers is odd, but that's how $.ajax =
does it=0A=
			if (ok) {=0A=
				opts.success(data, 'success');=0A=
				if (g) $.event.trigger("ajaxSuccess", [xhr, opts]);=0A=
			}=0A=
			if (g) $.event.trigger("ajaxComplete", [xhr, opts]);=0A=
			if (g && ! --$.active) $.event.trigger("ajaxStop");=0A=
			if (opts.complete) opts.complete(xhr, ok ? 'success' : 'error');=0A=
=0A=
			// clean up=0A=
			setTimeout(function() {=0A=
				$io.removeData('form-plugin-onload');=0A=
				$io.remove();=0A=
				xhr.responseXML =3D null;=0A=
			}, 100);=0A=
		};=0A=
=0A=
		function toXml(s, doc) {=0A=
			if (window.ActiveXObject) {=0A=
				doc =3D new ActiveXObject('Microsoft.XMLDOM');=0A=
				doc.async =3D 'false';=0A=
				doc.loadXML(s);=0A=
			}=0A=
			else=0A=
				doc =3D (new DOMParser()).parseFromString(s, 'text/xml');=0A=
			return (doc && doc.documentElement && doc.documentElement.tagName =
!=3D 'parsererror') ? doc : null;=0A=
		};=0A=
	};=0A=
};=0A=
=0A=
/**=0A=
 * ajaxForm() provides a mechanism for fully automating form submission.=0A=
 *=0A=
 * The advantages of using this method instead of ajaxSubmit() are:=0A=
 *=0A=
 * 1: This method will include coordinates for <input type=3D"image" /> =
elements (if the element=0A=
 *	is used to submit the form).=0A=
 * 2. This method will include the submit element's name/value data (for =
the element that was=0A=
 *	used to submit the form).=0A=
 * 3. This method binds the submit() method to the form for you.=0A=
 *=0A=
 * The options argument for ajaxForm works exactly as it does for =
ajaxSubmit.  ajaxForm merely=0A=
 * passes the options argument along after properly binding events for =
submit elements and=0A=
 * the form itself.=0A=
 */=0A=
$.fn.ajaxForm =3D function(options) {=0A=
	return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) {=0A=
		e.preventDefault();=0A=
		$(this).ajaxSubmit(options);=0A=
	}).bind('click.form-plugin', function(e) {=0A=
		var target =3D e.target;=0A=
		var $el =3D $(target);=0A=
		if (!($el.is(":submit,input:image"))) {=0A=
			// is this a child element of the submit el?  (ex: a span within a =
button)=0A=
			var t =3D $el.closest(':submit');=0A=
			if (t.length =3D=3D 0)=0A=
				return;=0A=
			target =3D t[0];=0A=
		}=0A=
		var form =3D this;=0A=
		form.clk =3D target;=0A=
		if (target.type =3D=3D 'image') {=0A=
			if (e.offsetX !=3D undefined) {=0A=
				form.clk_x =3D e.offsetX;=0A=
				form.clk_y =3D e.offsetY;=0A=
			} else if (typeof $.fn.offset =3D=3D 'function') { // try to use =
dimensions plugin=0A=
				var offset =3D $el.offset();=0A=
				form.clk_x =3D e.pageX - offset.left;=0A=
				form.clk_y =3D e.pageY - offset.top;=0A=
			} else {=0A=
				form.clk_x =3D e.pageX - target.offsetLeft;=0A=
				form.clk_y =3D e.pageY - target.offsetTop;=0A=
			}=0A=
		}=0A=
		// clear form vars=0A=
		setTimeout(function() { form.clk =3D form.clk_x =3D form.clk_y =3D =
null; }, 100);=0A=
	});=0A=
};=0A=
=0A=
// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm=0A=
$.fn.ajaxFormUnbind =3D function() {=0A=
	return this.unbind('submit.form-plugin click.form-plugin');=0A=
};=0A=
=0A=
/**=0A=
 * formToArray() gathers form element data into an array of objects that =
can=0A=
 * be passed to any of the following ajax functions: $.get, $.post, or =
load.=0A=
 * Each object in the array has both a 'name' and 'value' property.  An =
example of=0A=
 * an array for a simple login form might be:=0A=
 *=0A=
 * [ { name: 'username', value: 'jresig' }, { name: 'password', value: =
'secret' } ]=0A=
 *=0A=
 * It is this array that is passed to pre-submit callback functions =
provided to the=0A=
 * ajaxSubmit() and ajaxForm() methods.=0A=
 */=0A=
$.fn.formToArray =3D function(semantic) {=0A=
	var a =3D [];=0A=
	if (this.length =3D=3D 0) return a;=0A=
=0A=
	var form =3D this[0];=0A=
	var els =3D semantic ? form.getElementsByTagName('*') : form.elements;=0A=
	if (!els) return a;=0A=
	for(var i=3D0, max=3Dels.length; i < max; i++) {=0A=
		var el =3D els[i];=0A=
		var n =3D el.name;=0A=
		if (!n) continue;=0A=
=0A=
		if (semantic && form.clk && el.type =3D=3D "image") {=0A=
			// handle image inputs on the fly when semantic =3D=3D true=0A=
			if(!el.disabled && form.clk =3D=3D el) {=0A=
				a.push({name: n, value: $(el).val()});=0A=
				a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: =
form.clk_y});=0A=
			}=0A=
			continue;=0A=
		}=0A=
=0A=
		var v =3D $.fieldValue(el, true);=0A=
		if (v && v.constructor =3D=3D Array) {=0A=
			for(var j=3D0, jmax=3Dv.length; j < jmax; j++)=0A=
				a.push({name: n, value: v[j]});=0A=
		}=0A=
		else if (v !=3D=3D null && typeof v !=3D 'undefined')=0A=
			a.push({name: n, value: v});=0A=
	}=0A=
=0A=
	if (!semantic && form.clk) {=0A=
		// input type=3D=3D'image' are not found in elements array! handle it =
here=0A=
		var $input =3D $(form.clk), input =3D $input[0], n =3D input.name;=0A=
		if (n && !input.disabled && input.type =3D=3D 'image') {=0A=
			a.push({name: n, value: $input.val()});=0A=
			a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: =
form.clk_y});=0A=
		}=0A=
	}=0A=
	return a;=0A=
};=0A=
=0A=
/**=0A=
 * Serializes form data into a 'submittable' string. This method will =
return a string=0A=
 * in the format: name1=3Dvalue1&amp;name2=3Dvalue2=0A=
 */=0A=
$.fn.formSerialize =3D function(semantic) {=0A=
	//hand off to jQuery.param for proper encoding=0A=
	return $.param(this.formToArray(semantic));=0A=
};=0A=
=0A=
/**=0A=
 * Serializes all field elements in the jQuery object into a query =
string.=0A=
 * This method will return a string in the format: =
name1=3Dvalue1&amp;name2=3Dvalue2=0A=
 */=0A=
$.fn.fieldSerialize =3D function(successful) {=0A=
	var a =3D [];=0A=
	this.each(function() {=0A=
		var n =3D this.name;=0A=
		if (!n) return;=0A=
		var v =3D $.fieldValue(this, successful);=0A=
		if (v && v.constructor =3D=3D Array) {=0A=
			for (var i=3D0,max=3Dv.length; i < max; i++)=0A=
				a.push({name: n, value: v[i]});=0A=
		}=0A=
		else if (v !=3D=3D null && typeof v !=3D 'undefined')=0A=
			a.push({name: this.name, value: v});=0A=
	});=0A=
	//hand off to jQuery.param for proper encoding=0A=
	return $.param(a);=0A=
};=0A=
=0A=
/**=0A=
 * Returns the value(s) of the element in the matched set.  For example, =
consider the following form:=0A=
 *=0A=
 *  <form><fieldset>=0A=
 *	  <input name=3D"A" type=3D"text" />=0A=
 *	  <input name=3D"A" type=3D"text" />=0A=
 *	  <input name=3D"B" type=3D"checkbox" value=3D"B1" />=0A=
 *	  <input name=3D"B" type=3D"checkbox" value=3D"B2"/>=0A=
 *	  <input name=3D"C" type=3D"radio" value=3D"C1" />=0A=
 *	  <input name=3D"C" type=3D"radio" value=3D"C2" />=0A=
 *  </fieldset></form>=0A=
 *=0A=
 *  var v =3D $(':text').fieldValue();=0A=
 *  // if no values are entered into the text inputs=0A=
 *  v =3D=3D ['','']=0A=
 *  // if values entered into the text inputs are 'foo' and 'bar'=0A=
 *  v =3D=3D ['foo','bar']=0A=
 *=0A=
 *  var v =3D $(':checkbox').fieldValue();=0A=
 *  // if neither checkbox is checked=0A=
 *  v =3D=3D=3D undefined=0A=
 *  // if both checkboxes are checked=0A=
 *  v =3D=3D ['B1', 'B2']=0A=
 *=0A=
 *  var v =3D $(':radio').fieldValue();=0A=
 *  // if neither radio is checked=0A=
 *  v =3D=3D=3D undefined=0A=
 *  // if first radio is checked=0A=
 *  v =3D=3D ['C1']=0A=
 *=0A=
 * The successful argument controls whether or not the field element =
must be 'successful'=0A=
 * (per =
http://www.w3.org/TR/html4/interact/forms.html#successful-controls).=0A=
 * The default value of the successful argument is true.  If this value =
is false the value(s)=0A=
 * for each element is returned.=0A=
 *=0A=
 * Note: This method *always* returns an array.  If no valid value can =
be determined the=0A=
 *	   array will be empty, otherwise it will contain one or more values.=0A=
 */=0A=
$.fn.fieldValue =3D function(successful) {=0A=
	for (var val=3D[], i=3D0, max=3Dthis.length; i < max; i++) {=0A=
		var el =3D this[i];=0A=
		var v =3D $.fieldValue(el, successful);=0A=
		if (v =3D=3D=3D null || typeof v =3D=3D 'undefined' || (v.constructor =
=3D=3D Array && !v.length))=0A=
			continue;=0A=
		v.constructor =3D=3D Array ? $.merge(val, v) : val.push(v);=0A=
	}=0A=
	return val;=0A=
};=0A=
=0A=
/**=0A=
 * Returns the value of the field element.=0A=
 */=0A=
$.fieldValue =3D function(el, successful) {=0A=
	var n =3D el.name, t =3D el.type, tag =3D el.tagName.toLowerCase();=0A=
	if (typeof successful =3D=3D 'undefined') successful =3D true;=0A=
=0A=
	if (successful && (!n || el.disabled || t =3D=3D 'reset' || t =3D=3D =
'button' ||=0A=
		(t =3D=3D 'checkbox' || t =3D=3D 'radio') && !el.checked ||=0A=
		(t =3D=3D 'submit' || t =3D=3D 'image') && el.form && el.form.clk !=3D =
el ||=0A=
		tag =3D=3D 'select' && el.selectedIndex =3D=3D -1))=0A=
			return null;=0A=
=0A=
	if (tag =3D=3D 'select') {=0A=
		var index =3D el.selectedIndex;=0A=
		if (index < 0) return null;=0A=
		var a =3D [], ops =3D el.options;=0A=
		var one =3D (t =3D=3D 'select-one');=0A=
		var max =3D (one ? index+1 : ops.length);=0A=
		for(var i=3D(one ? index : 0); i < max; i++) {=0A=
			var op =3D ops[i];=0A=
			if (op.selected) {=0A=
				var v =3D op.value;=0A=
				if (!v) // extra pain for IE...=0A=
					v =3D (op.attributes && op.attributes['value'] && =
!(op.attributes['value'].specified)) ? op.text : op.value;=0A=
				if (one) return v;=0A=
				a.push(v);=0A=
			}=0A=
		}=0A=
		return a;=0A=
	}=0A=
	return el.value;=0A=
};=0A=
=0A=
/**=0A=
 * Clears the form data.  Takes the following actions on the form's =
input fields:=0A=
 *  - input text fields will have their 'value' property set to the =
empty string=0A=
 *  - select elements will have their 'selectedIndex' property set to -1=0A=
 *  - checkbox and radio inputs will have their 'checked' property set =
to false=0A=
 *  - inputs of type submit, button, reset, and hidden will *not* be =
effected=0A=
 *  - button elements will *not* be effected=0A=
 */=0A=
$.fn.clearForm =3D function() {=0A=
	return this.each(function() {=0A=
		$('input,select,textarea', this).clearFields();=0A=
	});=0A=
};=0A=
=0A=
/**=0A=
 * Clears the selected form elements.=0A=
 */=0A=
$.fn.clearFields =3D $.fn.clearInputs =3D function() {=0A=
	return this.each(function() {=0A=
		var t =3D this.type, tag =3D this.tagName.toLowerCase();=0A=
		if (t =3D=3D 'text' || t =3D=3D 'password' || tag =3D=3D 'textarea')=0A=
			this.value =3D '';=0A=
		else if (t =3D=3D 'checkbox' || t =3D=3D 'radio')=0A=
			this.checked =3D false;=0A=
		else if (tag =3D=3D 'select')=0A=
			this.selectedIndex =3D -1;=0A=
	});=0A=
};=0A=
=0A=
/**=0A=
 * Resets the form data.  Causes all form elements to be reset to their =
original value.=0A=
 */=0A=
$.fn.resetForm =3D function() {=0A=
	return this.each(function() {=0A=
		// guard against an input with the name of 'reset'=0A=
		// note that IE reports the reset function as an 'object'=0A=
		if (typeof this.reset =3D=3D 'function' || (typeof this.reset =3D=3D =
'object' && !this.reset.nodeType))=0A=
			this.reset();=0A=
	});=0A=
};=0A=
=0A=
/**=0A=
 * Enables or disables any matching elements.=0A=
 */=0A=
$.fn.enable =3D function(b) {=0A=
	if (b =3D=3D undefined) b =3D true;=0A=
	return this.each(function() {=0A=
		this.disabled =3D !b;=0A=
	});=0A=
};=0A=
=0A=
/**=0A=
 * Checks/unchecks any matching checkboxes or radio buttons and=0A=
 * selects/deselects and matching option elements.=0A=
 */=0A=
$.fn.selected =3D function(select) {=0A=
	if (select =3D=3D undefined) select =3D true;=0A=
	return this.each(function() {=0A=
		var t =3D this.type;=0A=
		if (t =3D=3D 'checkbox' || t =3D=3D 'radio')=0A=
			this.checked =3D select;=0A=
		else if (this.tagName.toLowerCase() =3D=3D 'option') {=0A=
			var $sel =3D $(this).parent('select');=0A=
			if (select && $sel[0] && $sel[0].type =3D=3D 'select-one') {=0A=
				// deselect all other options=0A=
				$sel.find('option').selected(false);=0A=
			}=0A=
			this.selected =3D select;=0A=
		}=0A=
	});=0A=
};=0A=
=0A=
// helper fn for console logging=0A=
// set $.fn.ajaxSubmit.debug to true to enable debug logging=0A=
function log() {=0A=
	if ($.fn.ajaxSubmit.debug) {=0A=
		var msg =3D '[jquery.form] ' + Array.prototype.join.call(arguments,'');=0A=
		if (window.console && window.console.log)=0A=
			window.console.log(msg);=0A=
		else if (window.opera && window.opera.postError)=0A=
			window.opera.postError(msg);=0A=
	}=0A=
};=0A=
=0A=
})(jQuery);=0A=

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/include/jquery/minwt.FullHeight.min.js

/*
 * DIV=B0=AA=AB=D7=A6=DB=B0=CA=A9=B5=AEi100%
 * =
=BEA=A5=CE=C2s=C4=FD=BE=B9=A1GIE8.0+=A1BFirefox3.6+=A1BChrome10+=A1BSafar=
i5.0
 * =AA=EC=AA=A9:=AD=B8=AA=D6-=AB=B8=B4=BC=BB=A8=A6=D1=AEv       =
http://www.flycan.com.tw
 * =A4G=AA=A9:=AD=B8=AA=D6-=A8k=A4B=A6=D1=AEv         http://abgne.tw
 * =A4T=AA=A9:=AD=B8=AA=D6-=A8k=A4B=A6=D1=AEv&=B1=F6=B0=DD=C3D  =
http://www.minwt.com
*/

eval(function(p,a,c,k,e,r){e=3Dfunction(c){return =
c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=3Dk[c]||e(c)=
;k=3D[function(e){return =
r[e]}];e=3Dfunction(){return'\\w+'};c=3D1};while(c--)if(k[c])p=3Dp.replac=
e(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(q).l(4(){8 =
b=3D$(\'[f=3Dt]\');e(b.s<=3D0)m n;8 =
c=3D$(j),$5=3D$(\'5\'),$1=3D$(\'[1=3D3]\'),6=3Db.7(3),k=3D6-b.2(),g=3Dh($=
5.i(\'o\'))+h($5.i(\'p\')),1=3D$1.7(3)-$1.2(),9=3D0;$(\'[f=3D1]\').r(4(){=
9+=3D$(j).7(3)});4 d(){8 =
a=3Dc.2()-9-g-k-1;e(a>6){b.2(a)}}c.u(4(){d()});d()});',31,31,'|none|heigh=
t|true|function|body|autoDivHeight|outerHeight|var|delHeight||||fullHeigh=
t|if|_height|delBodyMargin|parseInt|css|this|autoDivBorder|load|return|fa=
lse|marginTop|marginBottom|window|each|length|auto|resize'.split('|'),0,{=
}))
------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/include/jquery/jquery.query-2.1.7.js

=EF=BB=BF/**
 * jQuery.query - Query String Modification and Creation for jQuery
 * Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
 * Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
 * Date: 2009/8/13
 *
 * @author Blair Mitchelmore
 * @version 2.1.7
 *
 **/
new function(settings) {=20
  // Various Settings
  var $separator =3D settings.separator || '&';
  var $spaces =3D settings.spaces =3D=3D=3D false ? false : true;
  var $suffix =3D settings.suffix =3D=3D=3D false ? '' : '[]';
  var $prefix =3D settings.prefix =3D=3D=3D false ? false : true;
  var $hash =3D $prefix ? settings.hash =3D=3D=3D true ? "#" : "?" : "";
  var $numbers =3D settings.numbers =3D=3D=3D false ? false : true;
 =20
  jQuery.query =3D new function() {
    var is =3D function(o, t) {
      return o !=3D undefined && o !=3D=3D null && (!!t ? o.constructor =
=3D=3D t : true);
    };
    var parse =3D function(path) {
      var m, rx =3D /\[([^[]*)\]/g, match =3D =
/^([^[]+)(\[.*\])?$/.exec(path), base =3D match[1], tokens =3D [];
      while (m =3D rx.exec(match[2])) tokens.push(m[1]);
      return [base, tokens];
    };
    var set =3D function(target, tokens, value) {
      var o, token =3D tokens.shift();
      if (typeof target !=3D 'object') target =3D null;
      if (token =3D=3D=3D "") {
        if (!target) target =3D [];
        if (is(target, Array)) {
          target.push(tokens.length =3D=3D 0 ? value : set(null, =
tokens.slice(0), value));
        } else if (is(target, Object)) {
          var i =3D 0;
          while (target[i++] !=3D null);
          target[--i] =3D tokens.length =3D=3D 0 ? value : =
set(target[i], tokens.slice(0), value);
        } else {
          target =3D [];
          target.push(tokens.length =3D=3D 0 ? value : set(null, =
tokens.slice(0), value));
        }
      } else if (token && token.match(/^\s*[0-9]+\s*$/)) {
        var index =3D parseInt(token, 10);
        if (!target) target =3D [];
        target[index] =3D tokens.length =3D=3D 0 ? value : =
set(target[index], tokens.slice(0), value);
      } else if (token) {
        var index =3D token.replace(/^\s*|\s*$/g, "");
        if (!target) target =3D {};
        if (is(target, Array)) {
          var temp =3D {};
          for (var i =3D 0; i < target.length; ++i) {
            temp[i] =3D target[i];
          }
          target =3D temp;
        }
        target[index] =3D tokens.length =3D=3D 0 ? value : =
set(target[index], tokens.slice(0), value);
      } else {
        return value;
      }
      return target;
    };
   =20
    var queryObject =3D function(a) {
      var self =3D this;
      self.keys =3D {};
     =20
      if (a.queryObject) {
        jQuery.each(a.get(), function(key, val) {
          self.SET(key, val);
        });
      } else {
        jQuery.each(arguments, function() {
          var q =3D "" + this;
          q =3D q.replace(/^[?#]/,''); // remove any leading ? || #
          q =3D q.replace(/[;&]$/,''); // remove any trailing & || ;
          if ($spaces) q =3D q.replace(/[+]/g,' '); // replace +'s with =
spaces
         =20
          jQuery.each(q.split(/[&;]/), function(){
            var key =3D decodeURIComponent(this.split('=3D')[0] || "");
            var val =3D decodeURIComponent(this.split('=3D')[1] || "");
           =20
            if (!key) return;
           =20
            if ($numbers) {
              if (/^[+-]?[0-9]+\.[0-9]*$/.test(val)) // simple float =
regex
                val =3D parseFloat(val);
              else if (/^[+-]?[0-9]+$/.test(val)) // simple int regex
                val =3D parseInt(val, 10);
            }
           =20
            val =3D (!val && val !=3D=3D 0) ? true : val;
           =20
            if (val !=3D=3D false && val !=3D=3D true && typeof val !=3D =
'number')
              val =3D val;
           =20
            self.SET(key, val);
          });
        });
      }
      return self;
    };
   =20
    queryObject.prototype =3D {
      queryObject: true,
      has: function(key, type) {
        var value =3D this.get(key);
        return is(value, type);
      },
      GET: function(key) {
        if (!is(key)) return this.keys;
        var parsed =3D parse(key), base =3D parsed[0], tokens =3D =
parsed[1];
        var target =3D this.keys[base];
        while (target !=3D null && tokens.length !=3D 0) {
          target =3D target[tokens.shift()];
        }
        return typeof target =3D=3D 'number' ? target : target || "";
      },
      get: function(key) {
        var target =3D this.GET(key);
        if (is(target, Object))
          return jQuery.extend(true, {}, target);
        else if (is(target, Array))
          return target.slice(0);
        return target;
      },
      SET: function(key, val) {
        var value =3D !is(val) ? null : val;
        var parsed =3D parse(key), base =3D parsed[0], tokens =3D =
parsed[1];
        var target =3D this.keys[base];
        this.keys[base] =3D set(target, tokens.slice(0), value);
        return this;
      },
      set: function(key, val) {
        return this.copy().SET(key, val);
      },
      REMOVE: function(key) {
        return this.SET(key, null).COMPACT();
      },
      remove: function(key) {
        return this.copy().REMOVE(key);
      },
      EMPTY: function() {
        var self =3D this;
        jQuery.each(self.keys, function(key, value) {
          delete self.keys[key];
        });
        return self;
      },
      load: function(url) {
        var hash =3D url.replace(/^.*?[#](.+?)(?:\?.+)?$/, "$1");
        var search =3D url.replace(/^.*?[?](.+?)(?:#.+)?$/, "$1");
        return new queryObject(url.length =3D=3D search.length ? '' : =
search, url.length =3D=3D hash.length ? '' : hash);
      },
      empty: function() {
        return this.copy().EMPTY();
      },
      copy: function() {
        return new queryObject(this);
      },
      COMPACT: function() {
        function build(orig) {
          var obj =3D typeof orig =3D=3D "object" ? is(orig, Array) ? [] =
: {} : orig;
          if (typeof orig =3D=3D 'object') {
            function add(o, key, value) {
              if (is(o, Array))
                o.push(value);
              else
                o[key] =3D value;
            }
            jQuery.each(orig, function(key, value) {
              if (!is(value)) return true;
              add(obj, key, build(value));
            });
          }
          return obj;
        }
        this.keys =3D build(this.keys);
        return this;
      },
      compact: function() {
        return this.copy().COMPACT();
      },
      toString: function() {
        var i =3D 0, queryString =3D [], chunks =3D [], self =3D this;
        var encode =3D function(str) {
          str =3D str + "";
          if ($spaces) str =3D str.replace(/ /g, "+");
          return encodeURIComponent(str);
        };
        var addFields =3D function(arr, key, value) {
          if (!is(value) || value =3D=3D=3D false) return;
          var o =3D [encode(key)];
          if (value !=3D=3D true) {
            o.push("=3D");
            o.push(encode(value));
          }
          arr.push(o.join(""));
        };
        var build =3D function(obj, base) {
          var newKey =3D function(key) {
            return !base || base =3D=3D "" ? [key].join("") : [base, =
"[", key, "]"].join("");
          };
          jQuery.each(obj, function(key, value) {
            if (typeof value =3D=3D 'object')=20
              build(value, newKey(key));
            else
              addFields(chunks, newKey(key), value);
          });
        };
       =20
        build(this.keys);
       =20
        if (chunks.length > 0) queryString.push($hash);
        queryString.push(chunks.join($separator));
       =20
        return queryString.join("");
      }
    };
   =20
    return new queryObject(location.search, location.hash);
  };
}(jQuery.query || {}); // Pass in jQuery.query as settings object

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/include/jquery/colorbox-min.js

/*	ColorBox v1.3.6 - a full featured, light-weight, customizable =
lightbox based on jQuery 1.3 */
(function(c){function =
r(b,d){d=3Dd=3D=3D=3D"x"?m.width():m.height();return typeof =
b=3D=3D=3D"string"?Math.round(b.match(/%/)?d/100*parseInt(b,10):parseInt(=
b,10)):b}function M(b){b=3Dc.isFunction(b)?b.call(i):b;return =
a.photo||b.match(/\.(gif|png|jpg|jpeg|bmp)(?:\?([^#]*))?(?:#(\.*))?$/i)}f=
unction Y(){for(var b in =
a)if(c.isFunction(a[b])&&b.substring(0,2)!=3D=3D"on")a[b]=3Da[b].call(i);=
a.rel=3Da.rel||i.rel;a.href=3Da.href||i.href;a.title=3Da.title||i.title}f=
unction =
Z(b){i=3Db;a=3Dc(i).data(q);Y();if(a.rel&&a.rel!=3D=3D"nofollow"){g=3D =
c(".cboxElement").filter(function(){return(c(this).data(q).rel||this.rel)=
=3D=3D=3Da.rel});j=3Dg.index(i);if(j<0){g=3Dg.add(i);j=3Dg.length-1}}else=
{g=3Dc(i);j=3D0}if(!B){C=3DB=3Dn;N=3Di;N.blur();c(document).bind("keydown=
.cbox_close",function(d){if(d.keyCode=3D=3D=3D27){d.preventDefault();e.cl=
ose()}}).bind("keydown.cbox_arrows",function(d){if(g.length>1)if(d.keyCod=
e=3D=3D=3D37){d.preventDefault();D.click()}else =
if(d.keyCode=3D=3D=3D39){d.preventDefault();E.click()}});a.overlayClose&&=
s.css({cursor:"pointer"}).one("click",e.close);c.event.trigger(aa); =
a.onOpen&&a.onOpen.call(i);s.css({opacity:a.opacity}).show();a.w=3Dr(a.in=
itialWidth,"x");a.h=3Dr(a.initialHeight,"y");e.position(0);O&&m.bind("res=
ize.cboxie6 =
scroll.cboxie6",function(){s.css({width:m.width(),height:m.height(),top:m=
.scrollTop(),left:m.scrollLeft()})}).trigger("scroll.cboxie6")}P.add(D).a=
dd(E).add(t).add(Q).hide();R.html(a.close).show();e.slideshow();e.load()}=
var =
q=3D"colorbox",F=3D"hover",n=3Dtrue,e,x=3Dc.browser.msie&&!c.support.opac=
ity,O=3Dx&&c.browser.version<7,aa=3D"cbox_open",H=3D"cbox_load",S=3D =
"cbox_complete",T=3D"resize.cbox_resize",s,k,u,p,U,V,W,X,g,m,l,I,J,K,Q,P,=
t,E,D,R,y,z,v,w,i,N,j,a,B,C,$=3D{transition:"elastic",speed:350,width:fal=
se,height:false,innerWidth:false,innerHeight:false,initialWidth:"400",ini=
tialHeight:"400",maxWidth:false,maxHeight:false,scalePhotos:n,scrolling:n=
,inline:false,html:false,iframe:false,photo:false,href:false,title:false,=
rel:false,opacity:0.5,preloading:n,current:"image {current} of =
{total}",previous:"previous",next:"next",close:"close",open:false,overlay=
Close:n, =
slideshow:false,slideshowAuto:n,slideshowSpeed:2500,slideshowStart:"start=
 slideshow",slideshowStop:"stop =
slideshow",onOpen:false,onLoad:false,onComplete:false,onCleanup:false,onC=
losed:false};e=3Dc.fn.colorbox=3Dfunction(b,d){var =
h=3Dthis;if(!h.length)if(h.selector=3D=3D=3D""){h=3Dc("<a/>");b.open=3Dn}=
else return this;h.each(function(){var =
f=3Dc.extend({},c(this).data(q)?c(this).data(q):$,b);c(this).data(q,f).ad=
dClass("cboxElement");if(d)c(this).data(q).onComplete=3Dd});b&&b.open&&Z(=
h);return this};e.init=3Dfunction(){function b(d){return c('<div =
id=3D"cbox'+ d+'"/>')}m=3Dc(window);k=3Dc('<div =
id=3D"colorbox"/>');s=3Db("Overlay").hide();u=3Db("Wrapper");p=3Db("Conte=
nt").append(l=3Db("LoadedContent").css({width:0,height:0}),J=3Db("Loading=
Overlay"),K=3Db("LoadingGraphic"),Q=3Db("Title"),P=3Db("Current"),t=3Db("=
Slideshow"),E=3Db("Next"),D=3Db("Previous"),R=3Db("Close"));u.append(c("<=
div/>").append(b("TopLeft"),U=3Db("TopCenter"),b("TopRight")),c("<div/>")=
.append(V=3Db("MiddleLeft"),p,W=3Db("MiddleRight")),c("<div/>").append(b(=
"BottomLeft"),X=3Db("BottomCenter"),b("BottomRight"))).children().childre=
n().css({"float":"left"}); I=3Dc("<div style=3D'position:absolute; =
top:0; left:0; width:9999px; =
height:0;'/>");c("body").prepend(s,k.append(u,I));if(x){k.addClass("cboxI=
E");O&&s.css("position","absolute")}p.children().bind("mouseover =
mouseout",function(){c(this).toggleClass(F)}).addClass(F);y=3DU.height()+=
X.height()+p.outerHeight(n)-p.height();z=3DV.width()+W.width()+p.outerWid=
th(n)-p.width();v=3Dl.outerHeight(n);w=3Dl.outerWidth(n);k.css({"padding-=
bottom":y,"padding-right":z}).hide();E.click(e.next);D.click(e.prev);R.cl=
ick(e.close);p.children().removeClass(F); =
c(".cboxElement").live("click",function(d){if(d.button!=3D=3D0&&typeof =
d.button!=3D=3D"undefined")return n;else{Z(this);return =
false}})};e.position=3Dfunction(b,d){function =
h(A){U[0].style.width=3DX[0].style.width=3Dp[0].style.width=3DA.style.wid=
th;K[0].style.height=3DJ[0].style.height=3Dp[0].style.height=3DV[0].style=
.height=3DW[0].style.height=3DA.style.height}var =
f=3Dm.height();f=3DMath.max(f-a.h-v-y,0)/2+m.scrollTop();var =
o=3DMath.max(document.documentElement.clientWidth-a.w-w-z,0)/2+m.scrollLe=
ft();b=3Dk.width()=3D=3D=3Da.w+w&&k.height()=3D=3D=3D =
a.h+v?0:b;u[0].style.width=3Du[0].style.height=3D"9999px";k.dequeue().ani=
mate({width:a.w+w,height:a.h+v,top:f,left:o},{duration:b,complete:functio=
n(){h(this);C=3Dfalse;u[0].style.width=3Da.w+w+z+"px";u[0].style.height=3D=
a.h+v+y+"px";d&&d()},step:function(){h(this)}})};e.resize=3Dfunction(b){f=
unction d(){a.w=3Da.w||l.width();a.w=3Da.mw&&a.mw<a.w?a.mw:a.w;return =
a.w}function =
h(){a.h=3Da.h||l.height();a.h=3Da.mh&&a.mh<a.h?a.mh:a.h;return =
a.h}function =
f(G){e.position(G,function(){if(B){if(x){A&&l.fadeIn(100);k[0].style.remo=
veAttribute("filter")}if(a.iframe)l.append("<iframe id=3D'cboxIframe'"+ =
(a.scrolling?" ":"scrolling=3D'no'")+" name=3D'iframe_"+(new =
Date).getTime()+"' frameborder=3D0 src=3D'"+a.href+"' =
"+(x?"allowtransparency=3D'true'":"")+" =
/>");l.show();Q.show().html(a.title);if(g.length>1){P.html(a.current.repl=
ace(/\{current\}/,j+1).replace(/\{total\}/,g.length)).show();E.html(a.nex=
t).show();D.html(a.previous).show();a.slideshow&&t.show()}J.hide();K.hide=
();c.event.trigger(S);a.onComplete&&a.onComplete.call(i);a.transition=3D=3D=
=3D"fade"&&k.fadeTo(L,1,function(){x&&k[0].style.removeAttribute("filter"=
)}); m.bind(T,function(){e.position(0)})}})}if(B){var =
o,A,L=3Da.transition=3D=3D=3D"none"?0:a.speed;m.unbind(T);if(b){l.remove(=
);l=3Dc('<div =
id=3D"cboxLoadedContent"/>').html(b);l.hide().appendTo(I).css({width:d(),=
overflow:a.scrolling?"auto":"hidden"}).css({height:h()}).prependTo(p);c("=
#cboxPhoto").css({cssFloat:"none"});O&&c("select:not(#colorbox =
select)").filter(function(){return =
this.style.visibility!=3D=3D"hidden"}).css({visibility:"hidden"}).one("cb=
ox_cleanup",function(){this.style.visibility=3D"inherit"});a.transition=3D=
=3D=3D =
"fade"&&k.fadeTo(L,0,function(){f(0)})||f(L);if(a.preloading&&g.length>1)=
{b=3Dj>0?g[j-1]:g[g.length-1];o=3Dj<g.length-1?g[j+1]:g[0];o=3Dc(o).data(=
q).href||o.href;b=3Dc(b).data(q).href||b.href;M(o)&&c("<img =
/>").attr("src",o);M(b)&&c("<img />").attr("src",b)}}else =
setTimeout(function(){var G=3Dl.wrapInner("<div =
style=3D'overflow:auto'></div>").children();a.h=3DG.height();l.css({heigh=
t:a.h});G.replaceWith(G.children());e.position(L)},1)}};e.load=3Dfunction=
(){var =
b,d,h,f=3De.resize;C=3Dn;i=3Dg[j];a=3Dc(i).data(q);Y();c.event.trigger(H)=
; =
a.onLoad&&a.onLoad.call(i);a.h=3Da.height?r(a.height,"y")-v-y:a.innerHeig=
ht?r(a.innerHeight,"y"):false;a.w=3Da.width?r(a.width,"x")-w-z:a.innerWid=
th?r(a.innerWidth,"x"):false;a.mw=3Da.w;a.mh=3Da.h;if(a.maxWidth){a.mw=3D=
r(a.maxWidth,"x")-w-z;a.mw=3Da.w&&a.w<a.mw?a.w:a.mw}if(a.maxHeight){a.mh=3D=
r(a.maxHeight,"y")-v-y;a.mh=3Da.h&&a.h<a.mh?a.h:a.mh}b=3Da.href;J.show();=
K.show();if(a.inline){c('<div id=3D"cboxInlineTemp" =
/>').hide().insertBefore(c(b)[0]).bind(H+" =
cbox_cleanup",function(){c(this).replaceWith(l.children())}); =
f(c(b))}else if(a.iframe)f(" ");else if(a.html)f(a.html);else =
if(M(b)){d=3Dnew Image;d.onload=3Dfunction(){var =
o;d.onload=3Dnull;d.id=3D"cboxPhoto";c(d).css({margin:"auto",border:"none=
",display:"block",cssFloat:"left"});if(a.scalePhotos){h=3Dfunction(){d.he=
ight-=3Dd.height*o;d.width-=3Dd.width*o};if(a.mw&&d.width>a.mw){o=3D(d.wi=
dth-a.mw)/d.width;h()}if(a.mh&&d.height>a.mh){o=3D(d.height-a.mh)/d.heigh=
t;h()}}if(a.h)d.style.marginTop=3DMath.max(a.h-d.height,0)/2+"px";f(d);g.=
length>1&&c(d).css({cursor:"pointer"}).click(e.next); =
if(x)d.style.msInterpolationMode=3D"bicubic"};d.src=3Db}else c("<div =
/>").appendTo(I).load(b,function(o,A){A=3D=3D=3D"success"?f(this):f(c("<p=
>Request =
unsuccessful.</p>"))})};e.next=3Dfunction(){if(!C){j=3Dj<g.length-1?j+1:0=
;e.load()}};e.prev=3Dfunction(){if(!C){j=3Dj>0?j-1:g.length-1;e.load()}};=
e.slideshow=3Dfunction(){function =
b(){t.text(a.slideshowStop).bind(S,function(){h=3DsetTimeout(e.next,a.sli=
deshowSpeed)}).bind(H,function(){clearTimeout(h)}).one("click",function()=
{d();c(this).removeClass(F)});k.removeClass(f+ =
"off").addClass(f+"on")}var =
d,h,f=3D"cboxSlideshow_";t.bind("cbox_closed",function(){t.unbind();clear=
Timeout(h);k.removeClass(f+"off =
"+f+"on")});d=3Dfunction(){clearTimeout(h);t.text(a.slideshowStart).unbin=
d(S+" =
"+H).one("click",function(){b();h=3DsetTimeout(e.next,a.slideshowSpeed);c=
(this).removeClass(F)});k.removeClass(f+"on").addClass(f+"off")};if(a.sli=
deshow&&g.length>1)a.slideshowAuto?b():d()};e.close=3Dfunction(){c.event.=
trigger("cbox_cleanup");a.onCleanup&&a.onCleanup.call(i);B=3Dfalse;c(docu=
ment).unbind("keydown.cbox_close keydown.cbox_arrows"); m.unbind(T+" =
resize.cboxie6 =
scroll.cboxie6");s.css({cursor:"auto"}).fadeOut("fast");k.stop(n,false).f=
adeOut("fast",function(){c("#colorbox =
iframe").attr("src","about:blank");l.remove();k.css({opacity:1});try{N.fo=
cus()}catch(b){}c.event.trigger("cbox_closed");a.onClosed&&a.onClosed.cal=
l(i)})};e.element=3Dfunction(){return =
c(i)};e.settings=3D$;c(e.init)})(jQuery);
------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/include/js/inc.js

=EF=BB=BF$(function() {

   SetCurrentMenu();

   $(".mainMenu").children().children().hover(function() {
      //$(".mainMenu li").removeClass("current");
      $(".subMenu div").not("#" + $(this).attr("className")).hide();
      $(".subMenu #" + $(this).attr("className")).show();
      SetCurrentMenu();
   });

   $(".subMenu").children().hover(function() {
      $(".mainMenu ." + $(this).attr("id")).addClass("current");
   }, function() {
      $(this).hide();
      $(".mainMenu ." + $(this).attr("id")).removeClass("current");
      SetCurrentMenu();
   });
});

function MM_swapImgRestore() { //v3.0
   var i,x,a=3Ddocument.MM_sr; =
for(i=3D0;a&&i<a.length&&(x=3Da[i])&&x.oSrc;i++) x.src=3Dx.oSrc;
}
function MM_findObj(n, d) { //v4.01
   var p,i,x;  if(!d) d=3Ddocument; =
if((p=3Dn.indexOf("?"))>0&&parent.frames.length) {
     d=3Dparent.frames[n.substring(p+1)].document; =
n=3Dn.substring(0,p);}
   if(!(x=3Dd[n])&&d.all) x=3Dd.all[n]; for =
(i=3D0;!x&&i<d.forms.length;i++) x=3Dd.forms[i][n];
   for(i=3D0;!x&&d.layers&&i<d.layers.length;i++) =
x=3DMM_findObj(n,d.layers[i].document);
   if(!x && d.getElementById) x=3Dd.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
   var i,j=3D0,x,a=3DMM_swapImage.arguments; document.MM_sr=3Dnew Array; =
for(i=3D0;i<(a.length-2);i+=3D3)
      if ((x=3DMM_findObj(a[i]))!=3Dnull){document.MM_sr[j++]=3Dx; =
if(!x.oSrc) x.oSrc=3Dx.src; x.src=3Da[i+2];}
}

//=E8=AA=AA=E6=98=8E=EF=BC=9A=E7=94=A8 JavaScript =
=E5=AF=A6=E7=8F=BE=E7=B6=B2=E9=A0=81=E5=9C=96=E7=89=87=E7=AD=89=E6=AF=94=E4=
=BE=8B=E7=B8=AE=E6=94=BE=20
function DrawImage(ImgD,FitWidth,FitHeight) {
   var image=3Dnew Image();
   image.src=3DImgD.src;
   if(image.width>0 && image.height>0){
      if(image.width/image.height>=3D FitWidth/FitHeight){
         if(image.width>FitWidth){=20
            ImgD.width=3DFitWidth;
            ImgD.height=3D(image.height*FitWidth)/image.width;
         }else{
            ImgD.width=3Dimage.width;
            ImgD.height=3Dimage.height;
         }
      }else{
         if(image.height>FitHeight){
            ImgD.height=3DFitHeight;
            ImgD.width=3D(image.width*FitHeight)/image.height;
         }else{
            ImgD.width=3Dimage.width;
            ImgD.height=3Dimage.height;
         }
      }
   }=20
}

function SetCurrentMenu() {
   var pathArray =3D window.location.pathname.split('/');
   var newPathname =3D pathArray[pathArray.length - 1];

   var pag =3D new Array(8);
   pag[0] =3D =
"LawSearch.aspx,LawList.aspx,LawContent.aspx,LawArticle.aspx,LawArticleSe=
arch.aspx";
   pag[1] =3D =
"JudicialSearch.aspx,JudicialList.aspx,JudicialContent.aspx,JudicialBasis=
Article.aspx,LetterSearch.aspx,LetterList.aspx,LetterContent.aspx,LetterB=
asisArticle.aspx";
   pag[2] =3D "BookSearch.aspx,BookList.aspx,BookContent.aspx";
   pag[3] =3D "PleadingsSearch.aspx,PleadingsList.aspx";
   pag[4] =3D "ContractSearch.aspx,ContractList.aspx";
   pag[5] =3D =
"SeminarList.aspx,SeminarContent.aspx,ForumSearch.aspx,ForumList.aspx,For=
umContent.aspx,LiteratureList.aspx,LiteratureContent.aspx,MagazineList.as=
px";
   pag[6] =3D "WebLinkList.aspx";
   pag[7] =3D "";

   var classname =3D "";

   for(var i in pag){
      if (pag[i].match(newPathname)){
         switch (i) {
            case "0":
               classname =3D "lawSearch";
               break;
            case "1":
               classname =3D "letterjudicial";
               break;
            case "2":
               classname =3D "bookSearch";
               break;
            case "3":
               classname =3D "PleadingsSearch";
               break;
            case "4":
               classname =3D "ContractSearch";
               break;
            case "5":
               classname =3D "Service";
               break;
            case "6":
               classname =3D "WebLink";
               break;
            default:
               classname =3D "";
               break;
         }
      }   =20
   }

   if (classname.length > 0) {
      $("." + classname).addClass("current");
      $("#" + classname).show();
   }
}

/* =
=E8=AE=93iFrame=E7=9A=84=E9=AB=98=E5=BA=A6=E8=88=87=E5=85=A7=E5=AE=B9=E4=B8=
=80=E6=A8=A3 */
function dyniframesize(iframename) {
   var pTar =3D null;
   var FFextraHeight =3D (navigator.userAgent.indexOf("Firefox") > -1) ? =
16 : 0;

   if (document.getElementById) {
      pTar =3D document.getElementById(iframename);
   } else {
      eval('pTar =3D ' + iframename + ';');
   }
   if (pTar && !window.opera) {
      //begin resizing iframe
      pTar.style.display =3D "block"
      var iframeHeight =3D pTar.contentWindow.document.body.scrollHeight
      if (FFextraHeight > 0 && pTar.contentDocument && =
pTar.contentDocument.body.offsetHeight) {
         //ns6 syntax
         pTar.height =3D pTar.contentDocument.body.offsetHeight + =
FFextraHeight;
      } else if (pTar.Document && pTar.Document.body.scrollHeight) {
         //ie5+ syntax
         pTar.height =3D pTar.Document.body.scrollHeight;
      } else if (iframeHeight > 0) {
         //chrome + ns7
         pTar.height =3D pTar.contentWindow.document.body.scrollHeight;
      }
   }
}


------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/WebResource.axd?d=uR5trqqv-VtB7sBSq_pX8zFgBF6ZRPNP6TsjbbhmMeaMUlyGVxRIFVPmaygKly1fBFhYYQUqyvoo1v23mv0BIYD4q2k1&t=635295382417495136

function WebForm_PostBackOptions(eventTarget, eventArgument, validation, =
validationGroup, actionUrl, trackFocus, clientSubmit) {
    this.eventTarget =3D eventTarget;
    this.eventArgument =3D eventArgument;
    this.validation =3D validation;
    this.validationGroup =3D validationGroup;
    this.actionUrl =3D actionUrl;
    this.trackFocus =3D trackFocus;
    this.clientSubmit =3D clientSubmit;
}
function WebForm_DoPostBackWithOptions(options) {
    var validationResult =3D true;
    if (options.validation) {
        if (typeof(Page_ClientValidate) =3D=3D 'function') {
            validationResult =3D =
Page_ClientValidate(options.validationGroup);
        }
    }
    if (validationResult) {
        if ((typeof(options.actionUrl) !=3D "undefined") && =
(options.actionUrl !=3D null) && (options.actionUrl.length > 0)) {
            theForm.action =3D options.actionUrl;
        }
        if (options.trackFocus) {
            var lastFocus =3D theForm.elements["__LASTFOCUS"];
            if ((typeof(lastFocus) !=3D "undefined") && (lastFocus !=3D =
null)) {
                if (typeof(document.activeElement) =3D=3D "undefined") {
                    lastFocus.value =3D options.eventTarget;
                }
                else {
                    var active =3D document.activeElement;
                    if ((typeof(active) !=3D "undefined") && (active =
!=3D null)) {
                        if ((typeof(active.id) !=3D "undefined") && =
(active.id !=3D null) && (active.id.length > 0)) {
                            lastFocus.value =3D active.id;
                        }
                        else if (typeof(active.name) !=3D "undefined") {
                            lastFocus.value =3D active.name;
                        }
                    }
                }
            }
        }
    }
    if (options.clientSubmit) {
        __doPostBack(options.eventTarget, options.eventArgument);
    }
}
var __pendingCallbacks =3D new Array();
var __synchronousCallBackIndex =3D -1;
function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, =
context, errorCallback, useAsync) {
    var postData =3D __theFormPostData +
                "__CALLBACKID=3D" + WebForm_EncodeCallback(eventTarget) =
+
                "&__CALLBACKPARAM=3D" + =
WebForm_EncodeCallback(eventArgument);
    if (theForm["__EVENTVALIDATION"]) {
        postData +=3D "&__EVENTVALIDATION=3D" + =
WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value);
    }
    var xmlRequest,e;
    try {
        xmlRequest =3D new XMLHttpRequest();
    }
    catch(e) {
        try {
            xmlRequest =3D new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e) {
        }
    }
    var setRequestHeaderMethodExists =3D true;
    try {
        setRequestHeaderMethodExists =3D (xmlRequest && =
xmlRequest.setRequestHeader);
    }
    catch(e) {}
    var callback =3D new Object();
    callback.eventCallback =3D eventCallback;
    callback.context =3D context;
    callback.errorCallback =3D errorCallback;
    callback.async =3D useAsync;
    var callbackIndex =3D =
WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
    if (!useAsync) {
        if (__synchronousCallBackIndex !=3D -1) {
            __pendingCallbacks[__synchronousCallBackIndex] =3D null;
        }
        __synchronousCallBackIndex =3D callbackIndex;
    }
    if (setRequestHeaderMethodExists) {
        xmlRequest.onreadystatechange =3D WebForm_CallbackComplete;
        callback.xmlRequest =3D xmlRequest;
        xmlRequest.open("POST", theForm.action, true);
        xmlRequest.setRequestHeader("Content-Type", =
"application/x-www-form-urlencoded; charset=3Dutf-8");
        xmlRequest.send(postData);
        return;
    }
    callback.xmlRequest =3D new Object();
    var callbackFrameID =3D "__CALLBACKFRAME" + callbackIndex;
    var xmlRequestFrame =3D document.frames[callbackFrameID];
    if (!xmlRequestFrame) {
        xmlRequestFrame =3D document.createElement("IFRAME");
        xmlRequestFrame.width =3D "1";
        xmlRequestFrame.height =3D "1";
        xmlRequestFrame.frameBorder =3D "0";
        xmlRequestFrame.id =3D callbackFrameID;
        xmlRequestFrame.name =3D callbackFrameID;
        xmlRequestFrame.style.position =3D "absolute";
        xmlRequestFrame.style.top =3D "-100px"
        xmlRequestFrame.style.left =3D "-100px";
        try {
            if (callBackFrameUrl) {
                xmlRequestFrame.src =3D callBackFrameUrl;
            }
        }
        catch(e) {}
        document.body.appendChild(xmlRequestFrame);
    }
    var interval =3D window.setInterval(function() {
        xmlRequestFrame =3D document.frames[callbackFrameID];
        if (xmlRequestFrame && xmlRequestFrame.document) {
            window.clearInterval(interval);
            xmlRequestFrame.document.write("");
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.write('<html><body><form =
method=3D"post"><input type=3D"hidden" name=3D"__CALLBACKLOADSCRIPT" =
value=3D"t"></form></body></html>');
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.forms[0].action =3D theForm.action;
            var count =3D __theFormPostCollection.length;
            var element;
            for (var i =3D 0; i < count; i++) {
                element =3D __theFormPostCollection[i];
                if (element) {
                    var fieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
                    fieldElement.type =3D "hidden";
                    fieldElement.name =3D element.name;
                    fieldElement.value =3D element.value;
                    =
xmlRequestFrame.document.forms[0].appendChild(fieldElement);
                }
            }
            var callbackIdFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackIdFieldElement.type =3D "hidden";
            callbackIdFieldElement.name =3D "__CALLBACKID";
            callbackIdFieldElement.value =3D eventTarget;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);
            var callbackParamFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackParamFieldElement.type =3D "hidden";
            callbackParamFieldElement.name =3D "__CALLBACKPARAM";
            callbackParamFieldElement.value =3D eventArgument;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);=

            if (theForm["__EVENTVALIDATION"]) {
                var callbackValidationFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
                callbackValidationFieldElement.type =3D "hidden";
                callbackValidationFieldElement.name =3D =
"__EVENTVALIDATION";
                callbackValidationFieldElement.value =3D =
theForm["__EVENTVALIDATION"].value;
                =
xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElem=
ent);
            }
            var callbackIndexFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackIndexFieldElement.type =3D "hidden";
            callbackIndexFieldElement.name =3D "__CALLBACKINDEX";
            callbackIndexFieldElement.value =3D callbackIndex;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);=

            xmlRequestFrame.document.forms[0].submit();
        }
    }, 10);
}
function WebForm_CallbackComplete() {
    for (var i =3D 0; i < __pendingCallbacks.length; i++) {
        callbackObject =3D __pendingCallbacks[i];
        if (callbackObject && callbackObject.xmlRequest && =
(callbackObject.xmlRequest.readyState =3D=3D 4)) {
            if (!__pendingCallbacks[i].async) {
                __synchronousCallBackIndex =3D -1;
            }
            __pendingCallbacks[i] =3D null;
            var callbackFrameID =3D "__CALLBACKFRAME" + i;
            var xmlRequestFrame =3D =
document.getElementById(callbackFrameID);
            if (xmlRequestFrame) {
                xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
            }
            WebForm_ExecuteCallback(callbackObject);
        }
    }
}
function WebForm_ExecuteCallback(callbackObject) {
    var response =3D callbackObject.xmlRequest.responseText;
    if (response.charAt(0) =3D=3D "s") {
        if ((typeof(callbackObject.eventCallback) !=3D "undefined") && =
(callbackObject.eventCallback !=3D null)) {
            callbackObject.eventCallback(response.substring(1), =
callbackObject.context);
        }
    }
    else if (response.charAt(0) =3D=3D "e") {
        if ((typeof(callbackObject.errorCallback) !=3D "undefined") && =
(callbackObject.errorCallback !=3D null)) {
            callbackObject.errorCallback(response.substring(1), =
callbackObject.context);
        }
    }
    else {
        var separatorIndex =3D response.indexOf("|");
        if (separatorIndex !=3D -1) {
            var validationFieldLength =3D parseInt(response.substring(0, =
separatorIndex));
            if (!isNaN(validationFieldLength)) {
                var validationField =3D =
response.substring(separatorIndex + 1, separatorIndex + =
validationFieldLength + 1);
                if (validationField !=3D "") {
                    var validationFieldElement =3D =
theForm["__EVENTVALIDATION"];
                    if (!validationFieldElement) {
                        validationFieldElement =3D =
document.createElement("INPUT");
                        validationFieldElement.type =3D "hidden";
                        validationFieldElement.name =3D =
"__EVENTVALIDATION";
                        theForm.appendChild(validationFieldElement);
                    }
                    validationFieldElement.value =3D validationField;
                }
                if ((typeof(callbackObject.eventCallback) !=3D =
"undefined") && (callbackObject.eventCallback !=3D null)) {
                    =
callbackObject.eventCallback(response.substring(separatorIndex + =
validationFieldLength + 1), callbackObject.context);
                }
            }
        }
    }
}
function WebForm_FillFirstAvailableSlot(array, element) {
    var i;
    for (i =3D 0; i < array.length; i++) {
        if (!array[i]) break;
    }
    array[i] =3D element;
    return i;
}
var __nonMSDOMBrowser =3D =
(window.navigator.appName.toLowerCase().indexOf('explorer') =3D=3D -1);
var __theFormPostData =3D "";
var __theFormPostCollection =3D new Array();
function WebForm_InitCallback() {
    var count =3D theForm.elements.length;
    var element;
    for (var i =3D 0; i < count; i++) {
        element =3D theForm.elements[i];
        var tagName =3D element.tagName.toLowerCase();
        if (tagName =3D=3D "input") {
            var type =3D element.type;
            if ((type =3D=3D "text" || type =3D=3D "hidden" || type =
=3D=3D "password" ||
                ((type =3D=3D "checkbox" || type =3D=3D "radio") && =
element.checked)) &&
                (element.id !=3D "__EVENTVALIDATION")) {
                WebForm_InitCallbackAddField(element.name, =
element.value);
            }
        }
        else if (tagName =3D=3D "select") {
            var selectCount =3D element.options.length;
            for (var j =3D 0; j < selectCount; j++) {
                var selectChild =3D element.options[j];
                if (selectChild.selected =3D=3D true) {
                    WebForm_InitCallbackAddField(element.name, =
element.value);
                }
            }
        }
        else if (tagName =3D=3D "textarea") {
            WebForm_InitCallbackAddField(element.name, element.value);
        }
    }
}
function WebForm_InitCallbackAddField(name, value) {
    var nameValue =3D new Object();
    nameValue.name =3D name;
    nameValue.value =3D value;
    __theFormPostCollection[__theFormPostCollection.length] =3D =
nameValue;
    __theFormPostData +=3D WebForm_EncodeCallback(name) + "=3D" + =
WebForm_EncodeCallback(value) + "&";
}
function WebForm_EncodeCallback(parameter) {
    if (encodeURIComponent) {
        return encodeURIComponent(parameter);
    }
    else {
        return escape(parameter);
    }
}
var __disabledControlArray =3D new Array();
function WebForm_ReEnableControls() {
    if (typeof(__enabledControlArray) =3D=3D 'undefined') {
        return false;
    }
    var disabledIndex =3D 0;
    for (var i =3D 0; i < __enabledControlArray.length; i++) {
        var c;
        if (__nonMSDOMBrowser) {
            c =3D document.getElementById(__enabledControlArray[i]);
        }
        else {
            c =3D document.all[__enabledControlArray[i]];
        }
        if ((typeof(c) !=3D "undefined") && (c !=3D null) && (c.disabled =
=3D=3D true)) {
            c.disabled =3D false;
            __disabledControlArray[disabledIndex++] =3D c;
        }
    }
    setTimeout("WebForm_ReDisableControls()", 0);
    return true;
}
function WebForm_ReDisableControls() {
    for (var i =3D 0; i < __disabledControlArray.length; i++) {
        __disabledControlArray[i].disabled =3D true;
    }
}
function WebForm_FireDefaultButton(event, target) {
    if (event.keyCode =3D=3D 13) {
        var src =3D event.srcElement || event.target;
        if (!src || (src.tagName.toLowerCase() !=3D "textarea")) {
            var defaultButton;
            if (__nonMSDOMBrowser) {
               defaultButton =3D document.getElementById(target);
            }
            else {
                defaultButton =3D document.all[target];
            }
            if (defaultButton && typeof(defaultButton.click) !=3D =
"undefined") {
                defaultButton.click();
                event.cancelBubble =3D true;
                if (event.stopPropagation) event.stopPropagation();
                return false;
            }
        }
    }
    return true;
}
function WebForm_GetScrollX() {
    if (__nonMSDOMBrowser) {
        return window.pageXOffset;
    }
    else {
        if (document.documentElement && =
document.documentElement.scrollLeft) {
            return document.documentElement.scrollLeft;
        }
        else if (document.body) {
            return document.body.scrollLeft;
        }
    }
    return 0;
}
function WebForm_GetScrollY() {
    if (__nonMSDOMBrowser) {
        return window.pageYOffset;
    }
    else {
        if (document.documentElement && =
document.documentElement.scrollTop) {
            return document.documentElement.scrollTop;
        }
        else if (document.body) {
            return document.body.scrollTop;
        }
    }
    return 0;
}
function WebForm_SaveScrollPositionSubmit() {
    if (__nonMSDOMBrowser) {
        theForm.elements['__SCROLLPOSITIONY'].value =3D =
window.pageYOffset;
        theForm.elements['__SCROLLPOSITIONX'].value =3D =
window.pageXOffset;
    }
    else {
        theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX();
        theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY();
    }
    if ((typeof(this.oldSubmit) !=3D "undefined") && (this.oldSubmit =
!=3D null)) {
        return this.oldSubmit();
    }
    return true;
}
function WebForm_SaveScrollPositionOnSubmit() {
    theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX();
    theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY();
    if ((typeof(this.oldOnSubmit) !=3D "undefined") && (this.oldOnSubmit =
!=3D null)) {
        return this.oldOnSubmit();
    }
    return true;
}
function WebForm_RestoreScrollPosition() {
    if (__nonMSDOMBrowser) {
        window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, =
theForm.elements['__SCROLLPOSITIONY'].value);
    }
    else {
        window.scrollTo(theForm.__SCROLLPOSITIONX.value, =
theForm.__SCROLLPOSITIONY.value);
    }
    if ((typeof(theForm.oldOnLoad) !=3D "undefined") && =
(theForm.oldOnLoad !=3D null)) {
        return theForm.oldOnLoad();
    }
    return true;
}
function WebForm_TextBoxKeyHandler(event) {
    if (event.keyCode =3D=3D 13) {
        var target;
        if (__nonMSDOMBrowser) {
            target =3D event.target;
        }
        else {
            target =3D event.srcElement;
        }
        if ((typeof(target) !=3D "undefined") && (target !=3D null)) {
            if (typeof(target.onchange) !=3D "undefined") {
                target.onchange();
                event.cancelBubble =3D true;
                if (event.stopPropagation) event.stopPropagation();
                return false;
            }
        }
    }
    return true;
}
function WebForm_TrimString(value) {
    return value.replace(/^\s+|\s+$/g, '')
}
function WebForm_AppendToClassName(element, className) {
    var currentClassName =3D ' ' + WebForm_TrimString(element.className) =
+ ' ';
    className =3D WebForm_TrimString(className);
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index =3D=3D=3D -1) {
        element.className =3D (element.className =3D=3D=3D '') ? =
className : element.className + ' ' + className;
    }
}
function WebForm_RemoveClassName(element, className) {
    var currentClassName =3D ' ' + WebForm_TrimString(element.className) =
+ ' ';
    className =3D WebForm_TrimString(className);
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index >=3D 0) {
        element.className =3D =
WebForm_TrimString(currentClassName.substring(0, index) + ' ' +
            currentClassName.substring(index + className.length + 1, =
currentClassName.length));
    }
}
function WebForm_GetElementById(elementId) {
    if (document.getElementById) {
        return document.getElementById(elementId);
    }
    else if (document.all) {
        return document.all[elementId];
    }
    else return null;
}
function WebForm_GetElementByTagName(element, tagName) {
    var elements =3D WebForm_GetElementsByTagName(element, tagName);
    if (elements && elements.length > 0) {
        return elements[0];
    }
    else return null;
}
function WebForm_GetElementsByTagName(element, tagName) {
    if (element && tagName) {
        if (element.getElementsByTagName) {
            return element.getElementsByTagName(tagName);
        }
        if (element.all && element.all.tags) {
            return element.all.tags(tagName);
        }
    }
    return null;
}
function WebForm_GetElementDir(element) {
    if (element) {
        if (element.dir) {
            return element.dir;
        }
        return WebForm_GetElementDir(element.parentNode);
    }
    return "ltr";
}
function WebForm_GetElementPosition(element) {
    var result =3D new Object();
    result.x =3D 0;
    result.y =3D 0;
    result.width =3D 0;
    result.height =3D 0;
    if (element.offsetParent) {
        result.x =3D element.offsetLeft;
        result.y =3D element.offsetTop;
        var parent =3D element.offsetParent;
        while (parent) {
            result.x +=3D parent.offsetLeft;
            result.y +=3D parent.offsetTop;
            var parentTagName =3D parent.tagName.toLowerCase();
            if (parentTagName !=3D "table" &&
                parentTagName !=3D "body" &&=20
                parentTagName !=3D "html" &&=20
                parentTagName !=3D "div" &&=20
                parent.clientTop &&=20
                parent.clientLeft) {
                result.x +=3D parent.clientLeft;
                result.y +=3D parent.clientTop;
            }
            parent =3D parent.offsetParent;
        }
    }
    else if (element.left && element.top) {
        result.x =3D element.left;
        result.y =3D element.top;
    }
    else {
        if (element.x) {
            result.x =3D element.x;
        }
        if (element.y) {
            result.y =3D element.y;
        }
    }
    if (element.offsetWidth && element.offsetHeight) {
        result.width =3D element.offsetWidth;
        result.height =3D element.offsetHeight;
    }
    else if (element.style && element.style.pixelWidth && =
element.style.pixelHeight) {
        result.width =3D element.style.pixelWidth;
        result.height =3D element.style.pixelHeight;
    }
    return result;
}
function WebForm_GetParentByTagName(element, tagName) {
    var parent =3D element.parentNode;
    var upperTagName =3D tagName.toUpperCase();
    while (parent && (parent.tagName.toUpperCase() !=3D upperTagName)) {
        parent =3D parent.parentNode ? parent.parentNode : =
parent.parentElement;
    }
    return parent;
}
function WebForm_SetElementHeight(element, height) {
    if (element && element.style) {
        element.style.height =3D height + "px";
    }
}
function WebForm_SetElementWidth(element, width) {
    if (element && element.style) {
        element.style.width =3D width + "px";
    }
}
function WebForm_SetElementX(element, x) {
    if (element && element.style) {
        element.style.left =3D x + "px";
    }
}
function WebForm_SetElementY(element, y) {
    if (element && element.style) {
        element.style.top =3D y + "px";
    }
}

------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/ScriptResource.axd?d=WEB6G7ajm7qeJGdPPRG930TzJIyJD7Iurnl3P0tnZvMh81rYu9aZbb3YozxQSzrhU43lhXtW8G7qHrK-4lYupV6rcggi97mMsP1srKaLyvzjvf4eLSZTMVz59qE61Lc84tlu2OLBH98GA7z4mf7Pmp5TJOQl5VGxICCdG2jyXyG9rN7U0&t=2e2045e2

=EF=BB=BF// Name:        MicrosoftAjax.debug.js
// Assembly:    System.Web.Extensions
// Version:     3.5.0.0
// FileVersion: 3.5.30729.5458
//-----------------------------------------------------------------------=

// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------=

// MicrosoftAjax.js
// Microsoft AJAX Framework.
=20
Function.__typeName =3D 'Function';
Function.__class =3D true;
Function.createCallback =3D function Function$createCallback(method, =
context) {
    /// <summary locid=3D"M:J#Function.createCallback" />
    /// <param name=3D"method" type=3D"Function"></param>
    /// <param name=3D"context" mayBeNull=3D"true"></param>
    /// <returns type=3D"Function"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "method", type: Function},
        {name: "context", mayBeNull: true}
    ]);
    if (e) throw e;
    return function() {
        var l =3D arguments.length;
        if (l > 0) {
            var args =3D [];
            for (var i =3D 0; i < l; i++) {
                args[i] =3D arguments[i];
            }
            args[l] =3D context;
            return method.apply(this, args);
        }
        return method.call(this, context);
    }
}
Function.createDelegate =3D function Function$createDelegate(instance, =
method) {
    /// <summary locid=3D"M:J#Function.createDelegate" />
    /// <param name=3D"instance" mayBeNull=3D"true"></param>
    /// <param name=3D"method" type=3D"Function"></param>
    /// <returns type=3D"Function"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true},
        {name: "method", type: Function}
    ]);
    if (e) throw e;
    return function() {
        return method.apply(instance, arguments);
    }
}
Function.emptyFunction =3D Function.emptyMethod =3D function =
Function$emptyMethod() {
    /// <summary locid=3D"M:J#Function.emptyMethod" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
Function._validateParams =3D function Function$_validateParams(params, =
expectedParams) {
    var e;
    e =3D Function._validateParameterCount(params, expectedParams);
    if (e) {
        e.popStackFrame();
        return e;
    }
    for (var i=3D0; i < params.length; i++) {
        var expectedParam =3D expectedParams[Math.min(i, =
expectedParams.length - 1)];
        var paramName =3D expectedParam.name;
        if (expectedParam.parameterArray) {
            paramName +=3D "[" + (i - expectedParams.length + 1) + "]";
        }
        e =3D Function._validateParameter(params[i], expectedParam, =
paramName);
        if (e) {
            e.popStackFrame();
            return e;
        }
    }
    return null;
}
Function._validateParameterCount =3D function =
Function$_validateParameterCount(params, expectedParams) {
    var maxParams =3D expectedParams.length;
    var minParams =3D 0;
    for (var i=3D0; i < expectedParams.length; i++) {
        if (expectedParams[i].parameterArray) {
            maxParams =3D Number.MAX_VALUE;
        }
        else if (!expectedParams[i].optional) {
            minParams++;
        }
    }
    if (params.length < minParams || params.length > maxParams) {
        var e =3D Error.parameterCount();
        e.popStackFrame();
        return e;
    }
    return null;
}
Function._validateParameter =3D function =
Function$_validateParameter(param, expectedParam, paramName) {
    var e;
    var expectedType =3D expectedParam.type;
    var expectedInteger =3D !!expectedParam.integer;
    var expectedDomElement =3D !!expectedParam.domElement;
    var mayBeNull =3D !!expectedParam.mayBeNull;
    e =3D Function._validateParameterType(param, expectedType, =
expectedInteger, expectedDomElement, mayBeNull, paramName);
    if (e) {
        e.popStackFrame();
        return e;
    }
    var expectedElementType =3D expectedParam.elementType;
    var elementMayBeNull =3D !!expectedParam.elementMayBeNull;
    if (expectedType =3D=3D=3D Array && typeof(param) !=3D=3D =
"undefined" && param !=3D=3D null &&
        (expectedElementType || !elementMayBeNull)) {
        var expectedElementInteger =3D !!expectedParam.elementInteger;
        var expectedElementDomElement =3D =
!!expectedParam.elementDomElement;
        for (var i=3D0; i < param.length; i++) {
            var elem =3D param[i];
            e =3D Function._validateParameterType(elem, =
expectedElementType,
                expectedElementInteger, expectedElementDomElement, =
elementMayBeNull,
                paramName + "[" + i + "]");
            if (e) {
                e.popStackFrame();
                return e;
            }
        }
    }
    return null;
}
Function._validateParameterType =3D function =
Function$_validateParameterType(param, expectedType, expectedInteger, =
expectedDomElement, mayBeNull, paramName) {
    var e;
    if (typeof(param) =3D=3D=3D "undefined") {
        if (mayBeNull) {
            return null;
        }
        else {
            e =3D Error.argumentUndefined(paramName);
            e.popStackFrame();
            return e;
        }
    }
    if (param =3D=3D=3D null) {
        if (mayBeNull) {
            return null;
        }
        else {
            e =3D Error.argumentNull(paramName);
            e.popStackFrame();
            return e;
        }
    }
    if (expectedType && expectedType.__enum) {
        if (typeof(param) !=3D=3D 'number') {
            e =3D Error.argumentType(paramName, Object.getType(param), =
expectedType);
            e.popStackFrame();
            return e;
        }
        if ((param % 1) =3D=3D=3D 0) {
            var values =3D expectedType.prototype;
            if (!expectedType.__flags || (param =3D=3D=3D 0)) {
                for (var i in values) {
                    if (values[i] =3D=3D=3D param) return null;
                }
            }
            else {
                var v =3D param;
                for (var i in values) {
                    var vali =3D values[i];
                    if (vali =3D=3D=3D 0) continue;
                    if ((vali & param) =3D=3D=3D vali) {
                        v -=3D vali;
                    }
                    if (v =3D=3D=3D 0) return null;
                }
            }
        }
        e =3D Error.argumentOutOfRange(paramName, param, =
String.format(Sys.Res.enumInvalidValue, param, expectedType.getName()));
        e.popStackFrame();
        return e;
    }
    if (expectedDomElement) {
        var val;
        if (typeof(param.nodeType) !=3D=3D 'number') {
            var doc =3D param.ownerDocument || param.document || param;
            if (doc !=3D param) {
                var w =3D doc.defaultView || doc.parentWindow;
                val =3D (w !=3D param) && !(w.document && param.document =
&& (w.document =3D=3D=3D param.document));
            }
            else {
                val =3D (typeof(doc.body) =3D=3D=3D 'undefined');
            }
        }
        else {
            val =3D (param.nodeType =3D=3D=3D 3);
        }
        if (val) {
            e =3D Error.argument(paramName, Sys.Res.argumentDomElement);
            e.popStackFrame();
            return e;
        }
    }
    if (expectedType && !expectedType.isInstanceOfType(param)) {
        e =3D Error.argumentType(paramName, Object.getType(param), =
expectedType);
        e.popStackFrame();
        return e;
    }
    if (expectedType =3D=3D=3D Number && expectedInteger) {
        if ((param % 1) !=3D=3D 0) {
            e =3D Error.argumentOutOfRange(paramName, param, =
Sys.Res.argumentInteger);
            e.popStackFrame();
            return e;
        }
    }
    return null;
}
=20
Error.__typeName =3D 'Error';
Error.__class =3D true;
Error.create =3D function Error$create(message, errorInfo) {
    /// <summary locid=3D"M:J#Error.create" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"errorInfo" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Error"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: =
true},
        {name: "errorInfo", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var e =3D new Error(message);
    e.message =3D message;
    if (errorInfo) {
        for (var v in errorInfo) {
            e[v] =3D errorInfo[v];
        }
    }
    e.popStackFrame();
    return e;
}
Error.argument =3D function Error$argument(paramName, message) {
    /// <summary locid=3D"M:J#Error.argument" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentException: " + (message ? =
message : Sys.Res.argument);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, { name: =
"Sys.ArgumentException", paramName: paramName });
    e.popStackFrame();
    return e;
}
Error.argumentNull =3D function Error$argumentNull(paramName, message) {
    /// <summary locid=3D"M:J#Error.argumentNull" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentNullException: " + (message ? =
message : Sys.Res.argumentNull);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, { name: =
"Sys.ArgumentNullException", paramName: paramName });
    e.popStackFrame();
    return e;
}
Error.argumentOutOfRange =3D function =
Error$argumentOutOfRange(paramName, actualValue, message) {
    /// <summary locid=3D"M:J#Error.argumentOutOfRange" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"actualValue" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "actualValue", mayBeNull: true, optional: true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentOutOfRangeException: " + =
(message ? message : Sys.Res.argumentOutOfRange);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    if (typeof(actualValue) !=3D=3D "undefined" && actualValue !=3D=3D =
null) {
        displayMessage +=3D "\n" + String.format(Sys.Res.actualValue, =
actualValue);
    }
    var e =3D Error.create(displayMessage, {
        name: "Sys.ArgumentOutOfRangeException",
        paramName: paramName,
        actualValue: actualValue
    });
    e.popStackFrame();
    return e;
}
Error.argumentType =3D function Error$argumentType(paramName, =
actualType, expectedType, message) {
    /// <summary locid=3D"M:J#Error.argumentType" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"actualType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"expectedType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "actualType", type: Type, mayBeNull: true, optional: =
true},
        {name: "expectedType", type: Type, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentTypeException: ";
    if (message) {
        displayMessage +=3D message;
    }
    else if (actualType && expectedType) {
        displayMessage +=3D
            String.format(Sys.Res.argumentTypeWithTypes, =
actualType.getName(), expectedType.getName());
    }
    else {
        displayMessage +=3D Sys.Res.argumentType;
    }
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, {
        name: "Sys.ArgumentTypeException",
        paramName: paramName,
        actualType: actualType,
        expectedType: expectedType
    });
    e.popStackFrame();
    return e;
}
Error.argumentUndefined =3D function Error$argumentUndefined(paramName, =
message) {
    /// <summary locid=3D"M:J#Error.argumentUndefined" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentUndefinedException: " + (message =
? message : Sys.Res.argumentUndefined);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, { name: =
"Sys.ArgumentUndefinedException", paramName: paramName });
    e.popStackFrame();
    return e;
}
Error.format =3D function Error$format(message) {
    /// <summary locid=3D"M:J#Error.format" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.FormatException: " + (message ? message =
: Sys.Res.format);
    var e =3D Error.create(displayMessage, {name: =
'Sys.FormatException'});
    e.popStackFrame();
    return e;
}
Error.invalidOperation =3D function Error$invalidOperation(message) {
    /// <summary locid=3D"M:J#Error.invalidOperation" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.InvalidOperationException: " + (message =
? message : Sys.Res.invalidOperation);
    var e =3D Error.create(displayMessage, {name: =
'Sys.InvalidOperationException'});
    e.popStackFrame();
    return e;
}
Error.notImplemented =3D function Error$notImplemented(message) {
    /// <summary locid=3D"M:J#Error.notImplemented" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.NotImplementedException: " + (message ? =
message : Sys.Res.notImplemented);
    var e =3D Error.create(displayMessage, {name: =
'Sys.NotImplementedException'});
    e.popStackFrame();
    return e;
}
Error.parameterCount =3D function Error$parameterCount(message) {
    /// <summary locid=3D"M:J#Error.parameterCount" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ParameterCountException: " + (message ? =
message : Sys.Res.parameterCount);
    var e =3D Error.create(displayMessage, {name: =
'Sys.ParameterCountException'});
    e.popStackFrame();
    return e;
}
Error.prototype.popStackFrame =3D function Error$popStackFrame() {
    /// <summary locid=3D"M:J#checkParam" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (typeof(this.stack) =3D=3D=3D "undefined" || this.stack =3D=3D=3D =
null ||
        typeof(this.fileName) =3D=3D=3D "undefined" || this.fileName =
=3D=3D=3D null ||
        typeof(this.lineNumber) =3D=3D=3D "undefined" || this.lineNumber =
=3D=3D=3D null) {
        return;
    }
    var stackFrames =3D this.stack.split("\n");
    var currentFrame =3D stackFrames[0];
    var pattern =3D this.fileName + ":" + this.lineNumber;
    while(typeof(currentFrame) !=3D=3D "undefined" &&
          currentFrame !=3D=3D null &&
          currentFrame.indexOf(pattern) =3D=3D=3D -1) {
        stackFrames.shift();
        currentFrame =3D stackFrames[0];
    }
    var nextFrame =3D stackFrames[1];
    if (typeof(nextFrame) =3D=3D=3D "undefined" || nextFrame =3D=3D=3D =
null) {
        return;
    }
    var nextFrameParts =3D nextFrame.match(/@(.*):(\d+)$/);
    if (typeof(nextFrameParts) =3D=3D=3D "undefined" || nextFrameParts =
=3D=3D=3D null) {
        return;
    }
    this.fileName =3D nextFrameParts[1];
    this.lineNumber =3D parseInt(nextFrameParts[2]);
    stackFrames.shift();
    this.stack =3D stackFrames.join("\n");
}
=20
Object.__typeName =3D 'Object';
Object.__class =3D true;
Object.getType =3D function Object$getType(instance) {
    /// <summary locid=3D"M:J#Object.getType" />
    /// <param name=3D"instance"></param>
    /// <returns type=3D"Type"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"}
    ]);
    if (e) throw e;
    var ctor =3D instance.constructor;
    if (!ctor || (typeof(ctor) !=3D=3D "function") || !ctor.__typeName =
|| (ctor.__typeName =3D=3D=3D 'Object')) {
        return Object;
    }
    return ctor;
}
Object.getTypeName =3D function Object$getTypeName(instance) {
    /// <summary locid=3D"M:J#Object.getTypeName" />
    /// <param name=3D"instance"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"}
    ]);
    if (e) throw e;
    return Object.getType(instance).getName();
}
=20
String.__typeName =3D 'String';
String.__class =3D true;
String.prototype.endsWith =3D function String$endsWith(suffix) {
    /// <summary locid=3D"M:J#String.endsWith" />
    /// <param name=3D"suffix" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "suffix", type: String}
    ]);
    if (e) throw e;
    return (this.substr(this.length - suffix.length) =3D=3D=3D suffix);
}
String.prototype.startsWith =3D function String$startsWith(prefix) {
    /// <summary locid=3D"M:J#String.startsWith" />
    /// <param name=3D"prefix" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "prefix", type: String}
    ]);
    if (e) throw e;
    return (this.substr(0, prefix.length) =3D=3D=3D prefix);
}
String.prototype.trim =3D function String$trim() {
    /// <summary locid=3D"M:J#String.trim" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/^\s+|\s+$/g, '');
}
String.prototype.trimEnd =3D function String$trimEnd() {
    /// <summary locid=3D"M:J#String.trimEnd" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/\s+$/, '');
}
String.prototype.trimStart =3D function String$trimStart() {
    /// <summary locid=3D"M:J#String.trimStart" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/^\s+/, '');
}
String.format =3D function String$format(format, args) {
    /// <summary locid=3D"M:J#String.format" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <param name=3D"args" parameterArray=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String},
        {name: "args", mayBeNull: true, parameterArray: true}
    ]);
    if (e) throw e;
    return String._toFormattedString(false, arguments);
}
String.localeFormat =3D function String$localeFormat(format, args) {
    /// <summary locid=3D"M:J#String.localeFormat" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <param name=3D"args" parameterArray=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String},
        {name: "args", mayBeNull: true, parameterArray: true}
    ]);
    if (e) throw e;
    return String._toFormattedString(true, arguments);
}
String._toFormattedString =3D function =
String$_toFormattedString(useLocale, args) {
    var result =3D '';
    var format =3D args[0];
    for (var i=3D0;;) {
        var open =3D format.indexOf('{', i);
        var close =3D format.indexOf('}', i);
        if ((open < 0) && (close < 0)) {
            result +=3D format.slice(i);
            break;
        }
        if ((close > 0) && ((close < open) || (open < 0))) {
            if (format.charAt(close + 1) !=3D=3D '}') {
                throw Error.argument('format', =
Sys.Res.stringFormatBraceMismatch);
            }
            result +=3D format.slice(i, close + 1);
            i =3D close + 2;
            continue;
        }
        result +=3D format.slice(i, open);
        i =3D open + 1;
        if (format.charAt(i) =3D=3D=3D '{') {
            result +=3D '{';
            i++;
            continue;
        }
        if (close < 0) throw Error.argument('format', =
Sys.Res.stringFormatBraceMismatch);
        var brace =3D format.substring(i, close);
        var colonIndex =3D brace.indexOf(':');
        var argNumber =3D parseInt((colonIndex < 0)? brace : =
brace.substring(0, colonIndex), 10) + 1;
        if (isNaN(argNumber)) throw Error.argument('format', =
Sys.Res.stringFormatInvalid);
        var argFormat =3D (colonIndex < 0)? '' : =
brace.substring(colonIndex + 1);
        var arg =3D args[argNumber];
        if (typeof(arg) =3D=3D=3D "undefined" || arg =3D=3D=3D null) {
            arg =3D '';
        }
        if (arg.toFormattedString) {
            result +=3D arg.toFormattedString(argFormat);
        }
        else if (useLocale && arg.localeFormat) {
            result +=3D arg.localeFormat(argFormat);
        }
        else if (arg.format) {
            result +=3D arg.format(argFormat);
        }
        else
            result +=3D arg.toString();
        i =3D close + 1;
    }
    return result;
}
=20
Boolean.__typeName =3D 'Boolean';
Boolean.__class =3D true;
Boolean.parse =3D function Boolean$parse(value) {
    /// <summary locid=3D"M:J#Boolean.parse" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    var v =3D value.trim().toLowerCase();
    if (v =3D=3D=3D 'false') return false;
    if (v =3D=3D=3D 'true') return true;
    throw Error.argumentOutOfRange('value', value, =
Sys.Res.boolTrueOrFalse);
}
=20
Date.__typeName =3D 'Date';
Date.__class =3D true;
Date._appendPreOrPostMatch =3D function =
Date$_appendPreOrPostMatch(preMatch, strBuilder) {
    var quoteCount =3D 0;
    var escaped =3D false;
    for (var i =3D 0, il =3D preMatch.length; i < il; i++) {
        var c =3D preMatch.charAt(i);
        switch (c) {
        case '\'':
            if (escaped) strBuilder.append("'");
            else quoteCount++;
            escaped =3D false;
            break;
        case '\\':
            if (escaped) strBuilder.append("\\");
            escaped =3D !escaped;
            break;
        default:
            strBuilder.append(c);
            escaped =3D false;
            break;
        }
    }
    return quoteCount;
}
Date._expandFormat =3D function Date$_expandFormat(dtf, format) {
    if (!format) {
        format =3D "F";
    }
    if (format.length =3D=3D=3D 1) {
        switch (format) {
        case "d":
            return dtf.ShortDatePattern;
        case "D":
            return dtf.LongDatePattern;
        case "t":
            return dtf.ShortTimePattern;
        case "T":
            return dtf.LongTimePattern;
        case "F":
            return dtf.FullDateTimePattern;
        case "M": case "m":
            return dtf.MonthDayPattern;
        case "s":
            return dtf.SortableDateTimePattern;
        case "Y": case "y":
            return dtf.YearMonthPattern;
        default:
            throw Error.format(Sys.Res.formatInvalidString);
        }
    }
    return format;
}
Date._expandYear =3D function Date$_expandYear(dtf, year) {
    if (year < 100) {
        var curr =3D new Date().getFullYear();
        year +=3D curr - (curr % 100);
        if (year > dtf.Calendar.TwoDigitYearMax) {
            return year - 100;
        }
    }
    return year;
}
Date._getParseRegExp =3D function Date$_getParseRegExp(dtf, format) {
    if (!dtf._parseRegExp) {
        dtf._parseRegExp =3D {};
    }
    else if (dtf._parseRegExp[format]) {
        return dtf._parseRegExp[format];
    }
    var expFormat =3D Date._expandFormat(dtf, format);
    expFormat =3D expFormat.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g, =
"\\\\$1");
    var regexp =3D new Sys.StringBuilder("^");
    var groups =3D [];
    var index =3D 0;
    var quoteCount =3D 0;
    var tokenRegExp =3D Date._getTokenRegExp();
    var match;
    while ((match =3D tokenRegExp.exec(expFormat)) !=3D=3D null) {
        var preMatch =3D expFormat.slice(index, match.index);
        index =3D tokenRegExp.lastIndex;
        quoteCount +=3D Date._appendPreOrPostMatch(preMatch, regexp);
        if ((quoteCount%2) =3D=3D=3D 1) {
            regexp.append(match[0]);
            continue;
        }
        switch (match[0]) {
            case 'dddd': case 'ddd':
            case 'MMMM': case 'MMM':
                regexp.append("(\\D+)");
                break;
            case 'tt': case 't':
                regexp.append("(\\D*)");
                break;
            case 'yyyy':
                regexp.append("(\\d{4})");
                break;
            case 'fff':
                regexp.append("(\\d{3})");
                break;
            case 'ff':
                regexp.append("(\\d{2})");
                break;
            case 'f':
                regexp.append("(\\d)");
                break;
            case 'dd': case 'd':
            case 'MM': case 'M':
            case 'yy': case 'y':
            case 'HH': case 'H':
            case 'hh': case 'h':
            case 'mm': case 'm':
            case 'ss': case 's':
                regexp.append("(\\d\\d?)");
                break;
            case 'zzz':
                regexp.append("([+-]?\\d\\d?:\\d{2})");
                break;
            case 'zz': case 'z':
                regexp.append("([+-]?\\d\\d?)");
                break;
        }
        Array.add(groups, match[0]);
    }
    Date._appendPreOrPostMatch(expFormat.slice(index), regexp);
    regexp.append("$");
    var regexpStr =3D regexp.toString().replace(/\s+/g, "\\s+");
    var parseRegExp =3D {'regExp': regexpStr, 'groups': groups};
    dtf._parseRegExp[format] =3D parseRegExp;
    return parseRegExp;
}
Date._getTokenRegExp =3D function Date$_getTokenRegExp() {
    return =
/dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|=
zzz|zz|z/g;
}
Date.parseLocale =3D function Date$parseLocale(value, formats) {
    /// <summary locid=3D"M:J#Date.parseLocale" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <param name=3D"formats" parameterArray=3D"true" =
optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns type=3D"Date"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "formats", mayBeNull: true, optional: true, =
parameterArray: true}
    ]);
    if (e) throw e;
    return Date._parse(value, Sys.CultureInfo.CurrentCulture, =
arguments);
}
Date.parseInvariant =3D function Date$parseInvariant(value, formats) {
    /// <summary locid=3D"M:J#Date.parseInvariant" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <param name=3D"formats" parameterArray=3D"true" =
optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns type=3D"Date"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "formats", mayBeNull: true, optional: true, =
parameterArray: true}
    ]);
    if (e) throw e;
    return Date._parse(value, Sys.CultureInfo.InvariantCulture, =
arguments);
}
Date._parse =3D function Date$_parse(value, cultureInfo, args) {
    var custom =3D false;
    for (var i =3D 1, il =3D args.length; i < il; i++) {
        var format =3D args[i];
        if (format) {
            custom =3D true;
            var date =3D Date._parseExact(value, format, cultureInfo);
            if (date) return date;
        }
    }
    if (! custom) {
        var formats =3D cultureInfo._getDateTimeFormats();
        for (var i =3D 0, il =3D formats.length; i < il; i++) {
            var date =3D Date._parseExact(value, formats[i], =
cultureInfo);
            if (date) return date;
        }
    }
    return null;
}
Date._parseExact =3D function Date$_parseExact(value, format, =
cultureInfo) {
    value =3D value.trim();
    var dtf =3D cultureInfo.dateTimeFormat;
    var parseInfo =3D Date._getParseRegExp(dtf, format);
    var match =3D new RegExp(parseInfo.regExp).exec(value);
    if (match =3D=3D=3D null) return null;
   =20
    var groups =3D parseInfo.groups;
    var year =3D null, month =3D null, date =3D null, weekDay =3D null;
    var hour =3D 0, min =3D 0, sec =3D 0, msec =3D 0, tzMinOffset =3D =
null;
    var pmHour =3D false;
    for (var j =3D 0, jl =3D groups.length; j < jl; j++) {
        var matchGroup =3D match[j+1];
        if (matchGroup) {
            switch (groups[j]) {
                case 'dd': case 'd':
                    date =3D parseInt(matchGroup, 10);
                    if ((date < 1) || (date > 31)) return null;
                    break;
                case 'MMMM':
                    month =3D cultureInfo._getMonthIndex(matchGroup);
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'MMM':
                    month =3D =
cultureInfo._getAbbrMonthIndex(matchGroup);
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'M': case 'MM':
                    var month =3D parseInt(matchGroup, 10) - 1;
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'y': case 'yy':
                    year =3D Date._expandYear(dtf,parseInt(matchGroup, =
10));
                    if ((year < 0) || (year > 9999)) return null;
                    break;
                case 'yyyy':
                    year =3D parseInt(matchGroup, 10);
                    if ((year < 0) || (year > 9999)) return null;
                    break;
                case 'h': case 'hh':
                    hour =3D parseInt(matchGroup, 10);
                    if (hour =3D=3D=3D 12) hour =3D 0;
                    if ((hour < 0) || (hour > 11)) return null;
                    break;
                case 'H': case 'HH':
                    hour =3D parseInt(matchGroup, 10);
                    if ((hour < 0) || (hour > 23)) return null;
                    break;
                case 'm': case 'mm':
                    min =3D parseInt(matchGroup, 10);
                    if ((min < 0) || (min > 59)) return null;
                    break;
                case 's': case 'ss':
                    sec =3D parseInt(matchGroup, 10);
                    if ((sec < 0) || (sec > 59)) return null;
                    break;
                case 'tt': case 't':
                    var upperToken =3D matchGroup.toUpperCase();
                    pmHour =3D (upperToken =3D=3D=3D =
dtf.PMDesignator.toUpperCase());
                    if (!pmHour && (upperToken !=3D=3D =
dtf.AMDesignator.toUpperCase())) return null;
                    break;
                case 'f':
                    msec =3D parseInt(matchGroup, 10) * 100;
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'ff':
                    msec =3D parseInt(matchGroup, 10) * 10;
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'fff':
                    msec =3D parseInt(matchGroup, 10);
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'dddd':
                    weekDay =3D cultureInfo._getDayIndex(matchGroup);
                    if ((weekDay < 0) || (weekDay > 6)) return null;
                    break;
                case 'ddd':
                    weekDay =3D =
cultureInfo._getAbbrDayIndex(matchGroup);
                    if ((weekDay < 0) || (weekDay > 6)) return null;
                    break;
                case 'zzz':
                    var offsets =3D matchGroup.split(/:/);
                    if (offsets.length !=3D=3D 2) return null;
                    var hourOffset =3D parseInt(offsets[0], 10);
                    if ((hourOffset < -12) || (hourOffset > 13)) return =
null;
                    var minOffset =3D parseInt(offsets[1], 10);
                    if ((minOffset < 0) || (minOffset > 59)) return =
null;
                    tzMinOffset =3D (hourOffset * 60) + =
(matchGroup.startsWith('-')? -minOffset : minOffset);
                    break;
                case 'z': case 'zz':
                    var hourOffset =3D parseInt(matchGroup, 10);
                    if ((hourOffset < -12) || (hourOffset > 13)) return =
null;
                    tzMinOffset =3D hourOffset * 60;
                    break;
            }
        }
    }
    var result =3D new Date();
    if (year =3D=3D=3D null) {
        year =3D result.getFullYear();
    }
    if (month =3D=3D=3D null) {
        month =3D result.getMonth();
    }
    if (date =3D=3D=3D null) {
        date =3D result.getDate();
    }
    result.setFullYear(year, month, date);
    if (result.getDate() !=3D=3D date) return null;
    if ((weekDay !=3D=3D null) && (result.getDay() !=3D=3D weekDay)) {
        return null;
    }
    if (pmHour && (hour < 12)) {
        hour +=3D 12;
    }
    result.setHours(hour, min, sec, msec);
    if (tzMinOffset !=3D=3D null) {
        var adjustedMin =3D result.getMinutes() - (tzMinOffset + =
result.getTimezoneOffset());
        result.setHours(result.getHours() + parseInt(adjustedMin/60, =
10), adjustedMin%60);
    }
    return result;
}
Date.prototype.format =3D function Date$format(format) {
    /// <summary locid=3D"M:J#Date.format" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.InvariantCulture);
}
Date.prototype.localeFormat =3D function Date$localeFormat(format) {
    /// <summary locid=3D"M:J#Date.localeFormat" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.CurrentCulture);
}
Date.prototype._toFormattedString =3D function =
Date$_toFormattedString(format, cultureInfo) {
    if (!format || (format.length =3D=3D=3D 0) || (format =3D=3D=3D =
'i')) {
        if (cultureInfo && (cultureInfo.name.length > 0)) {
            return this.toLocaleString();
        }
        else {
            return this.toString();
        }
    }
    var dtf =3D cultureInfo.dateTimeFormat;
    format =3D Date._expandFormat(dtf, format);
    var ret =3D new Sys.StringBuilder();
    var hour;
    function addLeadingZero(num) {
        if (num < 10) {
            return '0' + num;
        }
        return num.toString();
    }
    function addLeadingZeros(num) {
        if (num < 10) {
            return '00' + num;
        }
        if (num < 100) {
            return '0' + num;
        }
        return num.toString();
    }
    var quoteCount =3D 0;
    var tokenRegExp =3D Date._getTokenRegExp();
    for (;;) {
        var index =3D tokenRegExp.lastIndex;
        var ar =3D tokenRegExp.exec(format);
        var preMatch =3D format.slice(index, ar ? ar.index : =
format.length);
        quoteCount +=3D Date._appendPreOrPostMatch(preMatch, ret);
        if (!ar) break;
        if ((quoteCount%2) =3D=3D=3D 1) {
            ret.append(ar[0]);
            continue;
        }
        switch (ar[0]) {
        case "dddd":
            ret.append(dtf.DayNames[this.getDay()]);
            break;
        case "ddd":
            ret.append(dtf.AbbreviatedDayNames[this.getDay()]);
            break;
        case "dd":
            ret.append(addLeadingZero(this.getDate()));
            break;
        case "d":
            ret.append(this.getDate());
            break;
        case "MMMM":
            ret.append(dtf.MonthNames[this.getMonth()]);
            break;
        case "MMM":
            ret.append(dtf.AbbreviatedMonthNames[this.getMonth()]);
            break;
        case "MM":
            ret.append(addLeadingZero(this.getMonth() + 1));
            break;
        case "M":
            ret.append(this.getMonth() + 1);
            break;
        case "yyyy":
            ret.append(this.getFullYear());
            break;
        case "yy":
            ret.append(addLeadingZero(this.getFullYear() % 100));
            break;
        case "y":
            ret.append(this.getFullYear() % 100);
            break;
        case "hh":
            hour =3D this.getHours() % 12;
            if (hour =3D=3D=3D 0) hour =3D 12;
            ret.append(addLeadingZero(hour));
            break;
        case "h":
            hour =3D this.getHours() % 12;
            if (hour =3D=3D=3D 0) hour =3D 12;
            ret.append(hour);
            break;
        case "HH":
            ret.append(addLeadingZero(this.getHours()));
            break;
        case "H":
            ret.append(this.getHours());
            break;
        case "mm":
            ret.append(addLeadingZero(this.getMinutes()));
            break;
        case "m":
            ret.append(this.getMinutes());
            break;
        case "ss":
            ret.append(addLeadingZero(this.getSeconds()));
            break;
        case "s":
            ret.append(this.getSeconds());
            break;
        case "tt":
            ret.append((this.getHours() < 12) ? dtf.AMDesignator : =
dtf.PMDesignator);
            break;
        case "t":
            ret.append(((this.getHours() < 12) ? dtf.AMDesignator : =
dtf.PMDesignator).charAt(0));
            break;
        case "f":
            =
ret.append(addLeadingZeros(this.getMilliseconds()).charAt(0));
            break;
        case "ff":
            ret.append(addLeadingZeros(this.getMilliseconds()).substr(0, =
2));
            break;
        case "fff":
            ret.append(addLeadingZeros(this.getMilliseconds()));
            break;
        case "z":
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
Math.floor(Math.abs(hour)));
            break;
        case "zz":
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
addLeadingZero(Math.floor(Math.abs(hour))));
            break;
        case "zzz":
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
addLeadingZero(Math.floor(Math.abs(hour))) +
                dtf.TimeSeparator + =
addLeadingZero(Math.abs(this.getTimezoneOffset() % 60)));
            break;
        }
    }
    return ret.toString();
}
=20
Number.__typeName =3D 'Number';
Number.__class =3D true;
Number.parseLocale =3D function Number$parseLocale(value) {
    /// <summary locid=3D"M:J#Number.parseLocale" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.CurrentCulture);
}
Number.parseInvariant =3D function Number$parseInvariant(value) {
    /// <summary locid=3D"M:J#Number.parseInvariant" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.InvariantCulture);
}
Number._parse =3D function Number$_parse(value, cultureInfo) {
    value =3D value.trim();
   =20
    if (value.match(/^[+-]?infinity$/i)) {
        return parseFloat(value);
    }
    if (value.match(/^0x[a-f0-9]+$/i)) {
        return parseInt(value);
    }
    var numFormat =3D cultureInfo.numberFormat;
    var signInfo =3D Number._parseNumberNegativePattern(value, =
numFormat, numFormat.NumberNegativePattern);
    var sign =3D signInfo[0];
    var num =3D signInfo[1];
   =20
    if ((sign =3D=3D=3D '') && (numFormat.NumberNegativePattern !=3D=3D =
1)) {
        signInfo =3D Number._parseNumberNegativePattern(value, =
numFormat, 1);
        sign =3D signInfo[0];
        num =3D signInfo[1];
    }
    if (sign =3D=3D=3D '') sign =3D '+';
   =20
    var exponent;
    var intAndFraction;
    var exponentPos =3D num.indexOf('e');
    if (exponentPos < 0) exponentPos =3D num.indexOf('E');
    if (exponentPos < 0) {
        intAndFraction =3D num;
        exponent =3D null;
    }
    else {
        intAndFraction =3D num.substr(0, exponentPos);
        exponent =3D num.substr(exponentPos + 1);
    }
   =20
    var integer;
    var fraction;
    var decimalPos =3D =
intAndFraction.indexOf(numFormat.NumberDecimalSeparator);
    if (decimalPos < 0) {
        integer =3D intAndFraction;
        fraction =3D null;
    }
    else {
        integer =3D intAndFraction.substr(0, decimalPos);
        fraction =3D intAndFraction.substr(decimalPos + =
numFormat.NumberDecimalSeparator.length);
    }
   =20
    integer =3D integer.split(numFormat.NumberGroupSeparator).join('');
    var altNumGroupSeparator =3D =
numFormat.NumberGroupSeparator.replace(/\u00A0/g, " ");
    if (numFormat.NumberGroupSeparator !=3D=3D altNumGroupSeparator) {
        integer =3D integer.split(altNumGroupSeparator).join('');
    }
   =20
    var p =3D sign + integer;
    if (fraction !=3D=3D null) {
        p +=3D '.' + fraction;
    }
    if (exponent !=3D=3D null) {
        var expSignInfo =3D Number._parseNumberNegativePattern(exponent, =
numFormat, 1);
        if (expSignInfo[0] =3D=3D=3D '') {
            expSignInfo[0] =3D '+';
        }
        p +=3D 'e' + expSignInfo[0] + expSignInfo[1];
    }
    if (p.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/)) {
        return parseFloat(p);
    }
    return Number.NaN;
}
Number._parseNumberNegativePattern =3D function =
Number$_parseNumberNegativePattern(value, numFormat, =
numberNegativePattern) {
    var neg =3D numFormat.NegativeSign;
    var pos =3D numFormat.PositiveSign;   =20
    switch (numberNegativePattern) {
        case 4:=20
            neg =3D ' ' + neg;
            pos =3D ' ' + pos;
        case 3:=20
            if (value.endsWith(neg)) {
                return ['-', value.substr(0, value.length - =
neg.length)];
            }
            else if (value.endsWith(pos)) {
                return ['+', value.substr(0, value.length - =
pos.length)];
            }
            break;
        case 2:=20
            neg +=3D ' ';
            pos +=3D ' ';
        case 1:=20
            if (value.startsWith(neg)) {
                return ['-', value.substr(neg.length)];
            }
            else if (value.startsWith(pos)) {
                return ['+', value.substr(pos.length)];
            }
            break;
        case 0:=20
            if (value.startsWith('(') && value.endsWith(')')) {
                return ['-', value.substr(1, value.length - 2)];
            }
            break;
    }
    return ['', value];
}
Number.prototype.format =3D function Number$format(format) {
    /// <summary locid=3D"M:J#Number.format" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.InvariantCulture);
}
Number.prototype.localeFormat =3D function Number$localeFormat(format) {
    /// <summary locid=3D"M:J#Number.localeFormat" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.CurrentCulture);
}
Number.prototype._toFormattedString =3D function =
Number$_toFormattedString(format, cultureInfo) {
    if (!format || (format.length =3D=3D=3D 0) || (format =3D=3D=3D =
'i')) {
        if (cultureInfo && (cultureInfo.name.length > 0)) {
            return this.toLocaleString();
        }
        else {
            return this.toString();
        }
    }
   =20
    var _percentPositivePattern =3D ["n %", "n%", "%n" ];
    var _percentNegativePattern =3D ["-n %", "-n%", "-%n"];
    var _numberNegativePattern =3D ["(n)","-n","- n","n-","n -"];
    var _currencyPositivePattern =3D ["$n","n$","$ n","n $"];
    var _currencyNegativePattern =3D =
["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n =
$-","$ n-","$ -n","n- $","($ n)","(n $)"];
    function zeroPad(str, count, left) {
        for (var l=3Dstr.length; l < count; l++) {
            str =3D (left ? ('0' + str) : (str + '0'));
        }
        return str;
    }
   =20
    function expandNumber(number, precision, groupSizes, sep, =
decimalChar) {
       =20
        var curSize =3D groupSizes[0];
        var curGroupIndex =3D 1;
        var factor =3D Math.pow(10, precision);
        var rounded =3D (Math.round(number * factor) / factor);
        if (!isFinite(rounded)) {
            rounded =3D number;
        }
        number =3D rounded;
       =20
        var numberString =3D number.toString();
        var right =3D "";
        var exponent;
       =20
       =20
        var split =3D numberString.split(/e/i);
        numberString =3D split[0];
        exponent =3D (split.length > 1 ? parseInt(split[1]) : 0);
        split =3D numberString.split('.');
        numberString =3D split[0];
        right =3D split.length > 1 ? split[1] : "";
       =20
        var l;
        if (exponent > 0) {
            right =3D zeroPad(right, exponent, false);
            numberString +=3D right.slice(0, exponent);
            right =3D right.substr(exponent);
        }
        else if (exponent < 0) {
            exponent =3D -exponent;
            numberString =3D zeroPad(numberString, exponent+1, true);
            right =3D numberString.slice(-exponent, numberString.length) =
+ right;
            numberString =3D numberString.slice(0, -exponent);
        }
        if (precision > 0) {
            if (right.length > precision) {
                right =3D right.slice(0, precision);
            }
            else {
                right =3D zeroPad(right, precision, false);
            }
            right =3D decimalChar + right;
        }
        else {=20
            right =3D "";
        }
        var stringIndex =3D numberString.length-1;
        var ret =3D "";
        while (stringIndex >=3D 0) {
            if (curSize =3D=3D=3D 0 || curSize > stringIndex) {
                if (ret.length > 0)
                    return numberString.slice(0, stringIndex + 1) + sep =
+ ret + right;
                else
                    return numberString.slice(0, stringIndex + 1) + =
right;
            }
            if (ret.length > 0)
                ret =3D numberString.slice(stringIndex - curSize + 1, =
stringIndex+1) + sep + ret;
            else
                ret =3D numberString.slice(stringIndex - curSize + 1, =
stringIndex+1);
            stringIndex -=3D curSize;
            if (curGroupIndex < groupSizes.length) {
                curSize =3D groupSizes[curGroupIndex];
                curGroupIndex++;
            }
        }
        return numberString.slice(0, stringIndex + 1) + sep + ret + =
right;
    }
    var nf =3D cultureInfo.numberFormat;
    var number =3D Math.abs(this);
    if (!format)
        format =3D "D";
    var precision =3D -1;
    if (format.length > 1) precision =3D parseInt(format.slice(1), 10);
    var pattern;
    switch (format.charAt(0)) {
    case "d":
    case "D":
        pattern =3D 'n';
        if (precision !=3D=3D -1) {
            number =3D zeroPad(""+number, precision, true);
        }
        if (this < 0) number =3D -number;
        break;
    case "c":
    case "C":
        if (this < 0) pattern =3D =
_currencyNegativePattern[nf.CurrencyNegativePattern];
        else pattern =3D =
_currencyPositivePattern[nf.CurrencyPositivePattern];
        if (precision =3D=3D=3D -1) precision =3D =
nf.CurrencyDecimalDigits;
        number =3D expandNumber(Math.abs(this), precision, =
nf.CurrencyGroupSizes, nf.CurrencyGroupSeparator, =
nf.CurrencyDecimalSeparator);
        break;
    case "n":
    case "N":
        if (this < 0) pattern =3D =
_numberNegativePattern[nf.NumberNegativePattern];
        else pattern =3D 'n';
        if (precision =3D=3D=3D -1) precision =3D =
nf.NumberDecimalDigits;
        number =3D expandNumber(Math.abs(this), precision, =
nf.NumberGroupSizes, nf.NumberGroupSeparator, =
nf.NumberDecimalSeparator);
        break;
    case "p":
    case "P":
        if (this < 0) pattern =3D =
_percentNegativePattern[nf.PercentNegativePattern];
        else pattern =3D =
_percentPositivePattern[nf.PercentPositivePattern];
        if (precision =3D=3D=3D -1) precision =3D =
nf.PercentDecimalDigits;
        number =3D expandNumber(Math.abs(this) * 100, precision, =
nf.PercentGroupSizes, nf.PercentGroupSeparator, =
nf.PercentDecimalSeparator);
        break;
    default:
        throw Error.format(Sys.Res.formatBadFormatSpecifier);
    }
    var regex =3D /n|\$|-|%/g;
    var ret =3D "";
    for (;;) {
        var index =3D regex.lastIndex;
        var ar =3D regex.exec(pattern);
        ret +=3D pattern.slice(index, ar ? ar.index : pattern.length);
        if (!ar)
            break;
        switch (ar[0]) {
        case "n":
            ret +=3D number;
            break;
        case "$":
            ret +=3D nf.CurrencySymbol;
            break;
        case "-":
            ret +=3D nf.NegativeSign;
            break;
        case "%":
            ret +=3D nf.PercentSymbol;
            break;
        }
    }
    return ret;
}
=20
RegExp.__typeName =3D 'RegExp';
RegExp.__class =3D true;
=20
Array.__typeName =3D 'Array';
Array.__class =3D true;
Array.add =3D Array.enqueue =3D function Array$enqueue(array, item) {
    /// <summary locid=3D"M:J#Array.enqueue" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    array[array.length] =3D item;
}
Array.addRange =3D function Array$addRange(array, items) {
    /// <summary locid=3D"M:J#Array.addRange" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"items" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "items", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    array.push.apply(array, items);
}
Array.clear =3D function Array$clear(array) {
    /// <summary locid=3D"M:J#Array.clear" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    array.length =3D 0;
}
Array.clone =3D function Array$clone(array) {
    /// <summary locid=3D"M:J#Array.clone" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <returns type=3D"Array" elementMayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    if (array.length =3D=3D=3D 1) {
        return [array[0]];
    }
    else {
        return Array.apply(null, array);
    }
}
Array.contains =3D function Array$contains(array, item) {
    /// <summary locid=3D"M:J#Array.contains" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    return (Array.indexOf(array, item) >=3D 0);
}
Array.dequeue =3D function Array$dequeue(array) {
    /// <summary locid=3D"M:J#Array.dequeue" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <returns mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    return array.shift();
}
Array.forEach =3D function Array$forEach(array, method, instance) {
    /// <summary locid=3D"M:J#Array.forEach" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"method" type=3D"Function"></param>
    /// <param name=3D"instance" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "method", type: Function},
        {name: "instance", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    for (var i =3D 0, l =3D array.length; i < l; i++) {
        var elt =3D array[i];
        if (typeof(elt) !=3D=3D 'undefined') method.call(instance, elt, =
i, array);
    }
}
Array.indexOf =3D function Array$indexOf(array, item, start) {
    /// <summary locid=3D"M:J#Array.indexOf" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"start" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true, optional: true},
        {name: "start", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if (typeof(item) =3D=3D=3D "undefined") return -1;
    var length =3D array.length;
    if (length !=3D=3D 0) {
        start =3D start - 0;
        if (isNaN(start)) {
            start =3D 0;
        }
        else {
            if (isFinite(start)) {
                start =3D start - (start % 1);
            }
            if (start < 0) {
                start =3D Math.max(0, length + start);
            }
        }
        for (var i =3D start; i < length; i++) {
            if ((typeof(array[i]) !=3D=3D "undefined") && (array[i] =
=3D=3D=3D item)) {
                return i;
            }
        }
    }
    return -1;
}
Array.insert =3D function Array$insert(array, index, item) {
    /// <summary locid=3D"M:J#Array.insert" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"index" mayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "index", mayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    array.splice(index, 0, item);
}
Array.parse =3D function Array$parse(value) {
    /// <summary locid=3D"M:J#Array.parse" />
    /// <param name=3D"value" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Array" elementMayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String, mayBeNull: true}
    ]);
    if (e) throw e;
    if (!value) return [];
    var v =3D eval(value);
    if (!Array.isInstanceOfType(v)) throw Error.argument('value', =
Sys.Res.arrayParseBadFormat);
    return v;
}
Array.remove =3D function Array$remove(array, item) {
    /// <summary locid=3D"M:J#Array.remove" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    var index =3D Array.indexOf(array, item);
    if (index >=3D 0) {
        array.splice(index, 1);
    }
    return (index >=3D 0);
}
Array.removeAt =3D function Array$removeAt(array, index) {
    /// <summary locid=3D"M:J#Array.removeAt" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"index" mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "index", mayBeNull: true}
    ]);
    if (e) throw e;
    array.splice(index, 1);
}
=20
if (!window) this.window =3D this;
window.Type =3D Function;
Type.__fullyQualifiedIdentifierRegExp =3D new RegExp("^[^.0-9 =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]([^ =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*[^. =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\])?$", "i");
Type.__identifierRegExp =3D new RegExp("^[^.0-9 =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\][^. =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*$", "i");
Type.prototype.callBaseMethod =3D function Type$callBaseMethod(instance, =
name, baseArguments) {
    /// <summary locid=3D"M:J#Type.callBaseMethod" />
    /// <param name=3D"instance"></param>
    /// <param name=3D"name" type=3D"String"></param>
    /// <param name=3D"baseArguments" type=3D"Array" optional=3D"true" =
mayBeNull=3D"true" elementMayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "name", type: String},
        {name: "baseArguments", type: Array, mayBeNull: true, optional: =
true, elementMayBeNull: true}
    ]);
    if (e) throw e;
    var baseMethod =3D this.getBaseMethod(instance, name);
    if (!baseMethod) throw =
Error.invalidOperation(String.format(Sys.Res.methodNotFound, name));
    if (!baseArguments) {
        return baseMethod.apply(instance);
    }
    else {
        return baseMethod.apply(instance, baseArguments);
    }
}
Type.prototype.getBaseMethod =3D function Type$getBaseMethod(instance, =
name) {
    /// <summary locid=3D"M:J#Type.getBaseMethod" />
    /// <param name=3D"instance"></param>
    /// <param name=3D"name" type=3D"String"></param>
    /// <returns type=3D"Function" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "name", type: String}
    ]);
    if (e) throw e;
    if (!this.isInstanceOfType(instance)) throw =
Error.argumentType('instance', Object.getType(instance), this);
    var baseType =3D this.getBaseType();
    if (baseType) {
        var baseMethod =3D baseType.prototype[name];
        return (baseMethod instanceof Function) ? baseMethod : null;
    }
    return null;
}
Type.prototype.getBaseType =3D function Type$getBaseType() {
    /// <summary locid=3D"M:J#Type.getBaseType" />
    /// <returns type=3D"Type" mayBeNull=3D"true"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return (typeof(this.__baseType) =3D=3D=3D "undefined") ? null : =
this.__baseType;
}
Type.prototype.getInterfaces =3D function Type$getInterfaces() {
    /// <summary locid=3D"M:J#Type.getInterfaces" />
    /// <returns type=3D"Array" elementType=3D"Type" mayBeNull=3D"false" =
elementMayBeNull=3D"false"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    var result =3D [];
    var type =3D this;
    while(type) {
        var interfaces =3D type.__interfaces;
        if (interfaces) {
            for (var i =3D 0, l =3D interfaces.length; i < l; i++) {
                var interfaceType =3D interfaces[i];
                if (!Array.contains(result, interfaceType)) {
                    result[result.length] =3D interfaceType;
                }
            }
        }
        type =3D type.__baseType;
    }
    return result;
}
Type.prototype.getName =3D function Type$getName() {
    /// <summary locid=3D"M:J#Type.getName" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return (typeof(this.__typeName) =3D=3D=3D "undefined") ? "" : =
this.__typeName;
}
Type.prototype.implementsInterface =3D function =
Type$implementsInterface(interfaceType) {
    /// <summary locid=3D"M:J#Type.implementsInterface" />
    /// <param name=3D"interfaceType" type=3D"Type"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "interfaceType", type: Type}
    ]);
    if (e) throw e;
    this.resolveInheritance();
    var interfaceName =3D interfaceType.getName();
    var cache =3D this.__interfaceCache;
    if (cache) {
        var cacheEntry =3D cache[interfaceName];
        if (typeof(cacheEntry) !=3D=3D 'undefined') return cacheEntry;
    }
    else {
        cache =3D this.__interfaceCache =3D {};
    }
    var baseType =3D this;
    while (baseType) {
        var interfaces =3D baseType.__interfaces;
        if (interfaces) {
            if (Array.indexOf(interfaces, interfaceType) !=3D=3D -1) {
                return cache[interfaceName] =3D true;
            }
        }
        baseType =3D baseType.__baseType;
    }
    return cache[interfaceName] =3D false;
}
Type.prototype.inheritsFrom =3D function Type$inheritsFrom(parentType) {
    /// <summary locid=3D"M:J#Type.inheritsFrom" />
    /// <param name=3D"parentType" type=3D"Type"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "parentType", type: Type}
    ]);
    if (e) throw e;
    this.resolveInheritance();
    var baseType =3D this.__baseType;
    while (baseType) {
        if (baseType =3D=3D=3D parentType) {
            return true;
        }
        baseType =3D baseType.__baseType;
    }
    return false;
}
Type.prototype.initializeBase =3D function Type$initializeBase(instance, =
baseArguments) {
    /// <summary locid=3D"M:J#Type.initializeBase" />
    /// <param name=3D"instance"></param>
    /// <param name=3D"baseArguments" type=3D"Array" optional=3D"true" =
mayBeNull=3D"true" elementMayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "baseArguments", type: Array, mayBeNull: true, optional: =
true, elementMayBeNull: true}
    ]);
    if (e) throw e;
    if (!this.isInstanceOfType(instance)) throw =
Error.argumentType('instance', Object.getType(instance), this);
    this.resolveInheritance();
    if (this.__baseType) {
        if (!baseArguments) {
            this.__baseType.apply(instance);
        }
        else {
            this.__baseType.apply(instance, baseArguments);
        }
    }
    return instance;
}
Type.prototype.isImplementedBy =3D function =
Type$isImplementedBy(instance) {
    /// <summary locid=3D"M:J#Type.isImplementedBy" />
    /// <param name=3D"instance" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true}
    ]);
    if (e) throw e;
    if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D =
null) return false;
    var instanceType =3D Object.getType(instance);
    return !!(instanceType.implementsInterface && =
instanceType.implementsInterface(this));
}
Type.prototype.isInstanceOfType =3D function =
Type$isInstanceOfType(instance) {
    /// <summary locid=3D"M:J#Type.isInstanceOfType" />
    /// <param name=3D"instance" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true}
    ]);
    if (e) throw e;
    if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D =
null) return false;
    if (instance instanceof this) return true;
    var instanceType =3D Object.getType(instance);
    return !!(instanceType =3D=3D=3D this) ||
           (instanceType.inheritsFrom && =
instanceType.inheritsFrom(this)) ||
           (instanceType.implementsInterface && =
instanceType.implementsInterface(this));
}
Type.prototype.registerClass =3D function Type$registerClass(typeName, =
baseType, interfaceTypes) {
    /// <summary locid=3D"M:J#Type.registerClass" />
    /// <param name=3D"typeName" type=3D"String"></param>
    /// <param name=3D"baseType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"interfaceTypes" parameterArray=3D"true" =
type=3D"Type"></param>
    /// <returns type=3D"Type"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String},
        {name: "baseType", type: Type, mayBeNull: true, optional: true},
        {name: "interfaceTypes", type: Type, parameterArray: true}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw =
Error.argument('typeName', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(typeName);
    }
    catch(e) {
        throw Error.argument('typeName', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('typeName', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[typeName]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
typeName));
    if ((arguments.length > 1) && (typeof(baseType) =3D=3D=3D =
'undefined')) throw Error.argumentUndefined('baseType');
    if (baseType && !baseType.__class) throw Error.argument('baseType', =
Sys.Res.baseNotAClass);
    this.prototype.constructor =3D this;
    this.__typeName =3D typeName;
    this.__class =3D true;
    if (baseType) {
        this.__baseType =3D baseType;
        this.__basePrototypePending =3D true;
    }
    Sys.__upperCaseTypes[typeName.toUpperCase()] =3D this;
    if (interfaceTypes) {
        this.__interfaces =3D [];
        this.resolveInheritance();
        for (var i =3D 2, l =3D arguments.length; i < l; i++) {
            var interfaceType =3D arguments[i];
            if (!interfaceType.__interface) throw =
Error.argument('interfaceTypes[' + (i - 2) + ']', =
Sys.Res.notAnInterface);
            for (var methodName in interfaceType.prototype) {
                var method =3D interfaceType.prototype[methodName];
                if (!this.prototype[methodName]) {
                    this.prototype[methodName] =3D method;
                }
            }
            this.__interfaces.push(interfaceType);
        }
    }
    Sys.__registeredTypes[typeName] =3D true;
    return this;
}
Type.prototype.registerInterface =3D function =
Type$registerInterface(typeName) {
    /// <summary locid=3D"M:J#Type.registerInterface" />
    /// <param name=3D"typeName" type=3D"String"></param>
    /// <returns type=3D"Type"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw =
Error.argument('typeName', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(typeName);
    }
    catch(e) {
        throw Error.argument('typeName', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('typeName', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[typeName]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
typeName));
    Sys.__upperCaseTypes[typeName.toUpperCase()] =3D this;
    this.prototype.constructor =3D this;
    this.__typeName =3D typeName;
    this.__interface =3D true;
    Sys.__registeredTypes[typeName] =3D true;
    return this;
}
Type.prototype.resolveInheritance =3D function Type$resolveInheritance() =
{
    /// <summary locid=3D"M:J#Type.resolveInheritance" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (this.__basePrototypePending) {
        var baseType =3D this.__baseType;
        baseType.resolveInheritance();
        for (var memberName in baseType.prototype) {
            var memberValue =3D baseType.prototype[memberName];
            if (!this.prototype[memberName]) {
                this.prototype[memberName] =3D memberValue;
            }
        }
        delete this.__basePrototypePending;
    }
}
Type.getRootNamespaces =3D function Type$getRootNamespaces() {
    /// <summary locid=3D"M:J#Type.getRootNamespaces" />
    /// <returns type=3D"Array"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return Array.clone(Sys.__rootNamespaces);
}
Type.isClass =3D function Type$isClass(type) {
    /// <summary locid=3D"M:J#Type.isClass" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__class;
}
Type.isInterface =3D function Type$isInterface(type) {
    /// <summary locid=3D"M:J#Type.isInterface" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__interface;
}
Type.isNamespace =3D function Type$isNamespace(object) {
    /// <summary locid=3D"M:J#Type.isNamespace" />
    /// <param name=3D"object" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "object", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(object) =3D=3D=3D 'undefined') || (object =3D=3D=3D =
null)) return false;
    return !!object.__namespace;
}
Type.parse =3D function Type$parse(typeName, ns) {
    /// <summary locid=3D"M:J#Type.parse" />
    /// <param name=3D"typeName" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <param name=3D"ns" optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns type=3D"Type" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String, mayBeNull: true},
        {name: "ns", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var fn;
    if (ns) {
        fn =3D Sys.__upperCaseTypes[ns.getName().toUpperCase() + '.' + =
typeName.toUpperCase()];
        return fn || null;
    }
    if (!typeName) return null;
    if (!Type.__htClasses) {
        Type.__htClasses =3D {};
    }
    fn =3D Type.__htClasses[typeName];
    if (!fn) {
        fn =3D eval(typeName);
        if (typeof(fn) !=3D=3D 'function') throw =
Error.argument('typeName', Sys.Res.notATypeName);
        Type.__htClasses[typeName] =3D fn;
    }
    return fn;
}
Type.registerNamespace =3D function =
Type$registerNamespace(namespacePath) {
    /// <summary locid=3D"M:J#Type.registerNamespace" />
    /// <param name=3D"namespacePath" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "namespacePath", type: String}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(namespacePath)) =
throw Error.argument('namespacePath', Sys.Res.invalidNameSpace);
    var rootObject =3D window;
    var namespaceParts =3D namespacePath.split('.');
    for (var i =3D 0; i < namespaceParts.length; i++) {
        var currentPart =3D namespaceParts[i];
        var ns =3D rootObject[currentPart];
        if (ns && !ns.__namespace) {
            throw =
Error.invalidOperation(String.format(Sys.Res.namespaceContainsObject, =
namespaceParts.splice(0, i + 1).join('.')));
        }
        if (!ns) {
            ns =3D rootObject[currentPart] =3D {
                __namespace: true,
                __typeName: namespaceParts.slice(0, i + 1).join('.')
            };
            if (i =3D=3D=3D 0) {
                Sys.__rootNamespaces[Sys.__rootNamespaces.length] =3D =
ns;
            }
            var parsedName;
            try {
                parsedName =3D eval(ns.__typeName);
            }
            catch(e) {
                parsedName =3D null;
            }
            if (parsedName !=3D=3D ns) {
                delete rootObject[currentPart];
                throw Error.argument('namespacePath', =
Sys.Res.invalidNameSpace);
            }
            ns.getName =3D function ns$getName() {return =
this.__typeName;}
        }
        rootObject =3D ns;
    }
}
window.Sys =3D {
    __namespace: true,
    __typeName: "Sys",
    getName: function() {return "Sys";},
    __upperCaseTypes: {}
};
Sys.__rootNamespaces =3D [Sys];
Sys.__registeredTypes =3D {};
=20
Sys.IDisposable =3D function Sys$IDisposable() {
    throw Error.notImplemented();
}
    function Sys$IDisposable$dispose() {
        throw Error.notImplemented();
    }
Sys.IDisposable.prototype =3D {
    dispose: Sys$IDisposable$dispose
}
Sys.IDisposable.registerInterface('Sys.IDisposable');
=20
Sys.StringBuilder =3D function Sys$StringBuilder(initialText) {
    /// <summary locid=3D"M:J#Sys.StringBuilder.#ctor" />
    /// <param name=3D"initialText" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "initialText", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    this._parts =3D (typeof(initialText) !=3D=3D 'undefined' && =
initialText !=3D=3D null && initialText !=3D=3D '') ?
        [initialText.toString()] : [];
    this._value =3D {};
    this._len =3D 0;
}
    function Sys$StringBuilder$append(text) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.append" />
        /// <param name=3D"text" mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "text", mayBeNull: true}
        ]);
        if (e) throw e;
        this._parts[this._parts.length] =3D text;
    }
    function Sys$StringBuilder$appendLine(text) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.appendLine" />
        /// <param name=3D"text" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "text", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._parts[this._parts.length] =3D
            ((typeof(text) =3D=3D=3D 'undefined') || (text =3D=3D=3D =
null) || (text =3D=3D=3D '')) ?
            '\r\n' : text + '\r\n';
    }
    function Sys$StringBuilder$clear() {
        /// <summary locid=3D"M:J#Sys.StringBuilder.clear" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._parts =3D [];
        this._value =3D {};
        this._len =3D 0;
    }
    function Sys$StringBuilder$isEmpty() {
        /// <summary locid=3D"M:J#Sys.StringBuilder.isEmpty" />
        /// <returns type=3D"Boolean"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._parts.length =3D=3D=3D 0) return true;
        return this.toString() =3D=3D=3D '';
    }
    function Sys$StringBuilder$toString(separator) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.toString" />
        /// <param name=3D"separator" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <returns type=3D"String"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "separator", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        separator =3D separator || '';
        var parts =3D this._parts;
        if (this._len !=3D=3D parts.length) {
            this._value =3D {};
            this._len =3D parts.length;
        }
        var val =3D this._value;
        if (typeof(val[separator]) =3D=3D=3D 'undefined') {
            if (separator !=3D=3D '') {
                for (var i =3D 0; i < parts.length;) {
                    if ((typeof(parts[i]) =3D=3D=3D 'undefined') || =
(parts[i] =3D=3D=3D '') || (parts[i] =3D=3D=3D null)) {
                        parts.splice(i, 1);
                    }
                    else {
                        i++;
                    }
                }
            }
            val[separator] =3D this._parts.join(separator);
        }
        return val[separator];
    }
Sys.StringBuilder.prototype =3D {
    append: Sys$StringBuilder$append,
    appendLine: Sys$StringBuilder$appendLine,
    clear: Sys$StringBuilder$clear,
    isEmpty: Sys$StringBuilder$isEmpty,
    toString: Sys$StringBuilder$toString
}
Sys.StringBuilder.registerClass('Sys.StringBuilder');
=20
if (!window.XMLHttpRequest) {
    window.XMLHttpRequest =3D function window$XMLHttpRequest() {
        var progIDs =3D [ 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP' ];
        for (var i =3D 0, l =3D progIDs.length; i < l; i++) {
            try {
                return new ActiveXObject(progIDs[i]);
            }
            catch (ex) {
            }
        }
        return null;
    }
}
=20
Sys.Browser =3D {};
Sys.Browser.InternetExplorer =3D {};
Sys.Browser.Firefox =3D {};
Sys.Browser.Safari =3D {};
Sys.Browser.Opera =3D {};
Sys.Browser.agent =3D null;
Sys.Browser.hasDebuggerStatement =3D false;
Sys.Browser.name =3D navigator.appName;
Sys.Browser.version =3D parseFloat(navigator.appVersion);
Sys.Browser.documentMode =3D 0;
if (navigator.userAgent.indexOf(' MSIE ') > -1) {
    Sys.Browser.agent =3D Sys.Browser.InternetExplorer;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/MSIE =
(\d+\.\d+)/)[1]);
    if (Sys.Browser.version >=3D 8) {
        if (document.documentMode >=3D 7) {
            Sys.Browser.documentMode =3D document.documentMode;   =20
        }
    }
    Sys.Browser.hasDebuggerStatement =3D true;
}
else if (navigator.userAgent.indexOf(' Firefox/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Firefox;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/ =
Firefox\/(\d+\.\d+)/)[1]);
    Sys.Browser.name =3D 'Firefox';
    Sys.Browser.hasDebuggerStatement =3D true;
}
else if (navigator.userAgent.indexOf(' AppleWebKit/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Safari;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/ =
AppleWebKit\/(\d+(\.\d+)?)/)[1]);
    Sys.Browser.name =3D 'Safari';
}
else if (navigator.userAgent.indexOf('Opera/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Opera;
}
Type.registerNamespace('Sys.UI');
=20
Sys._Debug =3D function Sys$_Debug() {
    /// <summary locid=3D"M:J#Sys.Debug.#ctor" />
    /// <field name=3D"isDebug" type=3D"Boolean" =
locid=3D"F:J#Sys.Debug.isDebug"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
    function Sys$_Debug$_appendConsole(text) {
        if ((typeof(Debug) !=3D=3D 'undefined') && Debug.writeln) {
            Debug.writeln(text);
        }
        if (window.console && window.console.log) {
            window.console.log(text);
        }
        if (window.opera) {
            window.opera.postError(text);
        }
        if (window.debugService) {
            window.debugService.trace(text);
        }
    }
    function Sys$_Debug$_appendTrace(text) {
        var traceElement =3D document.getElementById('TraceConsole');
        if (traceElement && (traceElement.tagName.toUpperCase() =
=3D=3D=3D 'TEXTAREA')) {
            traceElement.value +=3D text + '\n';
        }
    }
    function Sys$_Debug$assert(condition, message, displayCaller) {
        /// <summary locid=3D"M:J#Sys.Debug.assert" />
        /// <param name=3D"condition" type=3D"Boolean"></param>
        /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <param name=3D"displayCaller" type=3D"Boolean" =
optional=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "condition", type: Boolean},
            {name: "message", type: String, mayBeNull: true, optional: =
true},
            {name: "displayCaller", type: Boolean, optional: true}
        ]);
        if (e) throw e;
        if (!condition) {
            message =3D (displayCaller && this.assert.caller) ?
                String.format(Sys.Res.assertFailedCaller, message, =
this.assert.caller) :
                String.format(Sys.Res.assertFailed, message);
            if (confirm(String.format(Sys.Res.breakIntoDebugger, =
message))) {
                this.fail(message);
            }
        }
    }
    function Sys$_Debug$clearTrace() {
        /// <summary locid=3D"M:J#Sys.Debug.clearTrace" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var traceElement =3D document.getElementById('TraceConsole');
        if (traceElement && (traceElement.tagName.toUpperCase() =
=3D=3D=3D 'TEXTAREA')) {
            traceElement.value =3D '';
        }
    }
    function Sys$_Debug$fail(message) {
        /// <summary locid=3D"M:J#Sys.Debug.fail" />
        /// <param name=3D"message" type=3D"String" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "message", type: String, mayBeNull: true}
        ]);
        if (e) throw e;
        this._appendConsole(message);
        if (Sys.Browser.hasDebuggerStatement) {
            eval('debugger');
        }
    }
    function Sys$_Debug$trace(text) {
        /// <summary locid=3D"M:J#Sys.Debug.trace" />
        /// <param name=3D"text"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "text"}
        ]);
        if (e) throw e;
        this._appendConsole(text);
        this._appendTrace(text);
    }
    function Sys$_Debug$traceDump(object, name) {
        /// <summary locid=3D"M:J#Sys.Debug.traceDump" />
        /// <param name=3D"object" mayBeNull=3D"true"></param>
        /// <param name=3D"name" type=3D"String" mayBeNull=3D"true" =
optional=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", mayBeNull: true},
            {name: "name", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        var text =3D this._traceDump(object, name, true);
    }
    function Sys$_Debug$_traceDump(object, name, recursive, =
indentationPadding, loopArray) {
        name =3D name? name : 'traceDump';
        indentationPadding =3D indentationPadding? indentationPadding : =
'';
        if (object =3D=3D=3D null) {
            this.trace(indentationPadding + name + ': null');
            return;
        }
        switch(typeof(object)) {
            case 'undefined':
                this.trace(indentationPadding + name + ': Undefined');
                break;
            case 'number': case 'string': case 'boolean':
                this.trace(indentationPadding + name + ': ' + object);
                break;
            default:
                if (Date.isInstanceOfType(object) || =
RegExp.isInstanceOfType(object)) {
                    this.trace(indentationPadding + name + ': ' + =
object.toString());
                    break;
                }
                if (!loopArray) {
                    loopArray =3D [];
                }
                else if (Array.contains(loopArray, object)) {
                    this.trace(indentationPadding + name + ': ...');
                    return;
                }
                Array.add(loopArray, object);
                if ((object =3D=3D window) || (object =3D=3D=3D =
document) ||
                    (window.HTMLElement && (object instanceof =
HTMLElement)) ||
                    (typeof(object.nodeName) =3D=3D=3D 'string')) {
                    var tag =3D object.tagName? object.tagName : =
'DomElement';
                    if (object.id) {
                        tag +=3D ' - ' + object.id;
                    }
                    this.trace(indentationPadding + name + ' {' +  tag + =
'}');
                }
                else {
                    var typeName =3D Object.getTypeName(object);
                    this.trace(indentationPadding + name + =
(typeof(typeName) =3D=3D=3D 'string' ? ' {' + typeName + '}' : ''));
                    if ((indentationPadding =3D=3D=3D '') || recursive) =
{
                        indentationPadding +=3D "    ";
                        var i, length, properties, p, v;
                        if (Array.isInstanceOfType(object)) {
                            length =3D object.length;
                            for (i =3D 0; i < length; i++) {
                                this._traceDump(object[i], '[' + i + =
']', recursive, indentationPadding, loopArray);
                            }
                        }
                        else {
                            for (p in object) {
                                v =3D object[p];
                                if (!Function.isInstanceOfType(v)) {
                                    this._traceDump(v, p, recursive, =
indentationPadding, loopArray);
                                }
                            }
                        }
                    }
                }
                Array.remove(loopArray, object);
        }
    }
Sys._Debug.prototype =3D {
    _appendConsole: Sys$_Debug$_appendConsole,
    _appendTrace: Sys$_Debug$_appendTrace,
    assert: Sys$_Debug$assert,
    clearTrace: Sys$_Debug$clearTrace,
    fail: Sys$_Debug$fail,
    trace: Sys$_Debug$trace,
    traceDump: Sys$_Debug$traceDump,
    _traceDump: Sys$_Debug$_traceDump
}
Sys._Debug.registerClass('Sys._Debug');
Sys.Debug =3D new Sys._Debug();
    Sys.Debug.isDebug =3D true;
=20
function Sys$Enum$parse(value, ignoreCase) {
    /// <summary locid=3D"M:J#Sys.Enum.parse" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <param name=3D"ignoreCase" type=3D"Boolean" =
optional=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "ignoreCase", type: Boolean, optional: true}
    ]);
    if (e) throw e;
    var values, parsed, val;
    if (ignoreCase) {
        values =3D this.__lowerCaseValues;
        if (!values) {
            this.__lowerCaseValues =3D values =3D {};
            var prototype =3D this.prototype;
            for (var name in prototype) {
                values[name.toLowerCase()] =3D prototype[name];
            }
        }
    }
    else {
        values =3D this.prototype;
    }
    if (!this.__flags) {
        val =3D (ignoreCase ? value.toLowerCase() : value);
        parsed =3D values[val.trim()];
        if (typeof(parsed) !=3D=3D 'number') throw =
Error.argument('value', String.format(Sys.Res.enumInvalidValue, value, =
this.__typeName));
        return parsed;
    }
    else {
        var parts =3D (ignoreCase ? value.toLowerCase() : =
value).split(',');
        var v =3D 0;
        for (var i =3D parts.length - 1; i >=3D 0; i--) {
            var part =3D parts[i].trim();
            parsed =3D values[part];
            if (typeof(parsed) !=3D=3D 'number') throw =
Error.argument('value', String.format(Sys.Res.enumInvalidValue, =
value.split(',')[i].trim(), this.__typeName));
            v |=3D parsed;
        }
        return v;
    }
}
function Sys$Enum$toString(value) {
    /// <summary locid=3D"M:J#Sys.Enum.toString" />
    /// <param name=3D"value" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if ((typeof(value) =3D=3D=3D 'undefined') || (value =3D=3D=3D null)) =
return this.__string;
    if ((typeof(value) !=3D 'number') || ((value % 1) !=3D=3D 0)) throw =
Error.argumentType('value', Object.getType(value), this);
    var values =3D this.prototype;
    var i;
    if (!this.__flags || (value =3D=3D=3D 0)) {
        for (i in values) {
            if (values[i] =3D=3D=3D value) {
                return i;
            }
        }
    }
    else {
        var sorted =3D this.__sortedValues;
        if (!sorted) {
            sorted =3D [];
            for (i in values) {
                sorted[sorted.length] =3D {key: i, value: values[i]};
            }
            sorted.sort(function(a, b) {
                return a.value - b.value;
            });
            this.__sortedValues =3D sorted;
        }
        var parts =3D [];
        var v =3D value;
        for (i =3D sorted.length - 1; i >=3D 0; i--) {
            var kvp =3D sorted[i];
            var vali =3D kvp.value;
            if (vali =3D=3D=3D 0) continue;
            if ((vali & value) =3D=3D=3D vali) {
                parts[parts.length] =3D kvp.key;
                v -=3D vali;
                if (v =3D=3D=3D 0) break;
            }
        }
        if (parts.length && v =3D=3D=3D 0) return =
parts.reverse().join(', ');
    }
    throw Error.argumentOutOfRange('value', value, =
String.format(Sys.Res.enumInvalidValue, value, this.__typeName));
}
Type.prototype.registerEnum =3D function Type$registerEnum(name, flags) =
{
    /// <summary locid=3D"M:J#Sys.UI.LineType.#ctor" />
    /// <param name=3D"name" type=3D"String"></param>
    /// <param name=3D"flags" type=3D"Boolean" =
optional=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "name", type: String},
        {name: "flags", type: Boolean, optional: true}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(name)) throw =
Error.argument('name', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(name);
    }
    catch(e) {
        throw Error.argument('name', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('name', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[name]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
name));
    for (var i in this.prototype) {
        var val =3D this.prototype[i];
        if (!Type.__identifierRegExp.test(i)) throw =
Error.invalidOperation(String.format(Sys.Res.enumInvalidValueName, i));
        if (typeof(val) !=3D=3D 'number' || (val % 1) !=3D=3D 0) throw =
Error.invalidOperation(Sys.Res.enumValueNotInteger);
        if (typeof(this[i]) !=3D=3D 'undefined') throw =
Error.invalidOperation(String.format(Sys.Res.enumReservedName, i));
    }
    Sys.__upperCaseTypes[name.toUpperCase()] =3D this;
    for (var i in this.prototype) {
        this[i] =3D this.prototype[i];
    }
    this.__typeName =3D name;
    this.parse =3D Sys$Enum$parse;
    this.__string =3D this.toString();
    this.toString =3D Sys$Enum$toString;
    this.__flags =3D flags;
    this.__enum =3D true;
    Sys.__registeredTypes[name] =3D true;
}
Type.isEnum =3D function Type$isEnum(type) {
    /// <summary locid=3D"M:J#Type.isEnum" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__enum;
}
Type.isFlags =3D function Type$isFlags(type) {
    /// <summary locid=3D"M:J#Type.isFlags" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__flags;
}
=20
Sys.EventHandlerList =3D function Sys$EventHandlerList() {
    /// <summary locid=3D"M:J#Sys.EventHandlerList.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._list =3D {};
}
    function Sys$EventHandlerList$addHandler(id, handler) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.addHandler" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <param name=3D"handler" type=3D"Function"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        Array.add(this._getEvent(id, true), handler);
    }
    function Sys$EventHandlerList$removeHandler(id, handler) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.removeHandler" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <param name=3D"handler" type=3D"Function"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        var evt =3D this._getEvent(id);
        if (!evt) return;
        Array.remove(evt, handler);
    }
    function Sys$EventHandlerList$getHandler(id) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.getHandler" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <returns type=3D"Function"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String}
        ]);
        if (e) throw e;
        var evt =3D this._getEvent(id);
        if (!evt || (evt.length =3D=3D=3D 0)) return null;
        evt =3D Array.clone(evt);
        return function(source, args) {
            for (var i =3D 0, l =3D evt.length; i < l; i++) {
                evt[i](source, args);
            }
        };
    }
    function Sys$EventHandlerList$_getEvent(id, create) {
        if (!this._list[id]) {
            if (!create) return null;
            this._list[id] =3D [];
        }
        return this._list[id];
    }
Sys.EventHandlerList.prototype =3D {
    addHandler: Sys$EventHandlerList$addHandler,
    removeHandler: Sys$EventHandlerList$removeHandler,
    getHandler: Sys$EventHandlerList$getHandler,
    _getEvent: Sys$EventHandlerList$_getEvent
}
Sys.EventHandlerList.registerClass('Sys.EventHandlerList');
=20
Sys.EventArgs =3D function Sys$EventArgs() {
    /// <summary locid=3D"M:J#Sys.EventArgs.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
Sys.EventArgs.registerClass('Sys.EventArgs');
Sys.EventArgs.Empty =3D new Sys.EventArgs();
=20
Sys.CancelEventArgs =3D function Sys$CancelEventArgs() {
    /// <summary locid=3D"M:J#Sys.CancelEventArgs.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.CancelEventArgs.initializeBase(this);
    this._cancel =3D false;
}
    function Sys$CancelEventArgs$get_cancel() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.CancelEventArgs.cancel"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._cancel;
    }
    function Sys$CancelEventArgs$set_cancel(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._cancel =3D value;
    }
Sys.CancelEventArgs.prototype =3D {
    get_cancel: Sys$CancelEventArgs$get_cancel,
    set_cancel: Sys$CancelEventArgs$set_cancel
}
Sys.CancelEventArgs.registerClass('Sys.CancelEventArgs', Sys.EventArgs);
=20
Sys.INotifyPropertyChange =3D function Sys$INotifyPropertyChange() {
    /// <summary locid=3D"M:J#Sys.INotifyPropertyChange.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
    function Sys$INotifyPropertyChange$add_propertyChanged(handler) {
    /// <summary locid=3D"E:J#Sys.INotifyPropertyChange.propertyChanged" =
/>
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$INotifyPropertyChange$remove_propertyChanged(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
Sys.INotifyPropertyChange.prototype =3D {
    add_propertyChanged: Sys$INotifyPropertyChange$add_propertyChanged,
    remove_propertyChanged: =
Sys$INotifyPropertyChange$remove_propertyChanged
}
Sys.INotifyPropertyChange.registerInterface('Sys.INotifyPropertyChange');=

=20
Sys.PropertyChangedEventArgs =3D function =
Sys$PropertyChangedEventArgs(propertyName) {
    /// <summary locid=3D"M:J#Sys.PropertyChangedEventArgs.#ctor" />
    /// <param name=3D"propertyName" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "propertyName", type: String}
    ]);
    if (e) throw e;
    Sys.PropertyChangedEventArgs.initializeBase(this);
    this._propertyName =3D propertyName;
}
=20
    function Sys$PropertyChangedEventArgs$get_propertyName() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.PropertyChangedEventArgs.propertyName"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._propertyName;
    }
Sys.PropertyChangedEventArgs.prototype =3D {
    get_propertyName: Sys$PropertyChangedEventArgs$get_propertyName
}
Sys.PropertyChangedEventArgs.registerClass('Sys.PropertyChangedEventArgs'=
, Sys.EventArgs);
=20
Sys.INotifyDisposing =3D function Sys$INotifyDisposing() {
    /// <summary locid=3D"M:J#Sys.INotifyDisposing.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
    function Sys$INotifyDisposing$add_disposing(handler) {
    /// <summary locid=3D"E:J#Sys.INotifyDisposing.disposing" />
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$INotifyDisposing$remove_disposing(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
Sys.INotifyDisposing.prototype =3D {
    add_disposing: Sys$INotifyDisposing$add_disposing,
    remove_disposing: Sys$INotifyDisposing$remove_disposing
}
Sys.INotifyDisposing.registerInterface("Sys.INotifyDisposing");
=20
Sys.Component =3D function Sys$Component() {
    /// <summary locid=3D"M:J#Sys.Component.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (Sys.Application) Sys.Application.registerDisposableObject(this);
}
    function Sys$Component$get_events() {
        /// <value type=3D"Sys.EventHandlerList" =
locid=3D"P:J#Sys.Component.events"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$Component$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Component.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._id;
    }
    function Sys$Component$set_id(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if (this._idSet) throw =
Error.invalidOperation(Sys.Res.componentCantSetIdTwice);
        this._idSet =3D true;
        var oldId =3D this.get_id();
        if (oldId && Sys.Application.findComponent(oldId)) throw =
Error.invalidOperation(Sys.Res.componentCantSetIdAfterAddedToApp);
        this._id =3D value;
    }
    function Sys$Component$get_isInitialized() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Component.isInitialized"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._initialized;
    }
    function Sys$Component$get_isUpdating() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Component.isUpdating"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._updating;
    }
    function Sys$Component$add_disposing(handler) {
        /// <summary locid=3D"E:J#Sys.Component.disposing" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("disposing", handler);
    }
    function Sys$Component$remove_disposing(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("disposing", handler);
    }
    function Sys$Component$add_propertyChanged(handler) {
        /// <summary locid=3D"E:J#Sys.Component.propertyChanged" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("propertyChanged", handler);
    }
    function Sys$Component$remove_propertyChanged(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("propertyChanged", handler);
    }
    function Sys$Component$beginUpdate() {
        this._updating =3D true;
    }
    function Sys$Component$dispose() {
        if (this._events) {
            var handler =3D this._events.getHandler("disposing");
            if (handler) {
                handler(this, Sys.EventArgs.Empty);
            }
        }
        delete this._events;
        Sys.Application.unregisterDisposableObject(this);
        Sys.Application.removeComponent(this);
    }
    function Sys$Component$endUpdate() {
        this._updating =3D false;
        if (!this._initialized) this.initialize();
        this.updated();
    }
    function Sys$Component$initialize() {
        this._initialized =3D true;
    }
    function Sys$Component$raisePropertyChanged(propertyName) {
        /// <summary locid=3D"M:J#Sys.Component.raisePropertyChanged" />
        /// <param name=3D"propertyName" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyName", type: String}
        ]);
        if (e) throw e;
        if (!this._events) return;
        var handler =3D this._events.getHandler("propertyChanged");
        if (handler) {
            handler(this, new =
Sys.PropertyChangedEventArgs(propertyName));
        }
    }
    function Sys$Component$updated() {
    }
Sys.Component.prototype =3D {
    _id: null,
    _idSet: false,
    _initialized: false,
    _updating: false,
    get_events: Sys$Component$get_events,
    get_id: Sys$Component$get_id,
    set_id: Sys$Component$set_id,
    get_isInitialized: Sys$Component$get_isInitialized,
    get_isUpdating: Sys$Component$get_isUpdating,
    add_disposing: Sys$Component$add_disposing,
    remove_disposing: Sys$Component$remove_disposing,
    add_propertyChanged: Sys$Component$add_propertyChanged,
    remove_propertyChanged: Sys$Component$remove_propertyChanged,
    beginUpdate: Sys$Component$beginUpdate,
    dispose: Sys$Component$dispose,
    endUpdate: Sys$Component$endUpdate,
    initialize: Sys$Component$initialize,
    raisePropertyChanged: Sys$Component$raisePropertyChanged,
    updated: Sys$Component$updated
}
Sys.Component.registerClass('Sys.Component', null, Sys.IDisposable, =
Sys.INotifyPropertyChange, Sys.INotifyDisposing);
function Sys$Component$_setProperties(target, properties) {
    /// <summary locid=3D"M:J#Sys.Component._setProperties" />
    /// <param name=3D"target"></param>
    /// <param name=3D"properties"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "properties"}
    ]);
    if (e) throw e;
    var current;
    var targetType =3D Object.getType(target);
    var isObject =3D (targetType =3D=3D=3D Object) || (targetType =
=3D=3D=3D Sys.UI.DomElement);
    var isComponent =3D Sys.Component.isInstanceOfType(target) && =
!target.get_isUpdating();
    if (isComponent) target.beginUpdate();
    for (var name in properties) {
        var val =3D properties[name];
        var getter =3D isObject ? null : target["get_" + name];
        if (isObject || typeof(getter) !=3D=3D 'function') {
            var targetVal =3D target[name];
            if (!isObject && typeof(targetVal) =3D=3D=3D 'undefined') =
throw Error.invalidOperation(String.format(Sys.Res.propertyUndefined, =
name));
            if (!val || (typeof(val) !=3D=3D 'object') || (isObject && =
!targetVal)) {
                target[name] =3D val;
            }
            else {
                Sys$Component$_setProperties(targetVal, val);
            }
        }
        else {
            var setter =3D target["set_" + name];
            if (typeof(setter) =3D=3D=3D 'function') {
                setter.apply(target, [val]);
            }
            else if (val instanceof Array) {
                current =3D getter.apply(target);
                if (!(current instanceof Array)) throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotAnArray, name));
                for (var i =3D 0, j =3D current.length, l=3D val.length; =
i < l; i++, j++) {
                    current[j] =3D val[i];
                }
            }
            else if ((typeof(val) =3D=3D=3D 'object') && =
(Object.getType(val) =3D=3D=3D Object)) {
                current =3D getter.apply(target);
                if ((typeof(current) =3D=3D=3D 'undefined') || (current =
=3D=3D=3D null)) throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNullOrUndefined, =
name));
                Sys$Component$_setProperties(current, val);
            }
            else {
                throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, =
name));
            }
        }
    }
    if (isComponent) target.endUpdate();
}
function Sys$Component$_setReferences(component, references) {
    for (var name in references) {
        var setter =3D component["set_" + name];
        var reference =3D $find(references[name]);
        if (typeof(setter) !=3D=3D 'function') throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, =
name));
        if (!reference) throw =
Error.invalidOperation(String.format(Sys.Res.referenceNotFound, =
references[name]));
        setter.apply(component, [reference]);
    }
}
var $create =3D Sys.Component.create =3D function =
Sys$Component$create(type, properties, events, references, element) {
    /// <summary locid=3D"M:J#Sys.Component.create" />
    /// <param name=3D"type" type=3D"Type"></param>
    /// <param name=3D"properties" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"events" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"references" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"element" domElement=3D"true" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Sys.UI.Component"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", type: Type},
        {name: "properties", mayBeNull: true, optional: true},
        {name: "events", mayBeNull: true, optional: true},
        {name: "references", mayBeNull: true, optional: true},
        {name: "element", mayBeNull: true, domElement: true, optional: =
true}
    ]);
    if (e) throw e;
    if (!type.inheritsFrom(Sys.Component)) {
        throw Error.argument('type', =
String.format(Sys.Res.createNotComponent, type.getName()));
    }
    if (type.inheritsFrom(Sys.UI.Behavior) || =
type.inheritsFrom(Sys.UI.Control)) {
        if (!element) throw Error.argument('element', =
Sys.Res.createNoDom);
    }
    else if (element) throw Error.argument('element', =
Sys.Res.createComponentOnDom);
    var component =3D (element ? new type(element): new type());
    var app =3D Sys.Application;
    var creatingComponents =3D app.get_isCreatingComponents();
    component.beginUpdate();
    if (properties) {
        Sys$Component$_setProperties(component, properties);
    }
    if (events) {
        for (var name in events) {
            if (!(component["add_" + name] instanceof Function)) throw =
new Error.invalidOperation(String.format(Sys.Res.undefinedEvent, name));
            if (!(events[name] instanceof Function)) throw new =
Error.invalidOperation(Sys.Res.eventHandlerNotFunction);
            component["add_" + name](events[name]);
        }
    }
    if (component.get_id()) {
        app.addComponent(component);
    }
    if (creatingComponents) {
        app._createdComponents[app._createdComponents.length] =3D =
component;
        if (references) {
            app._addComponentToSecondPass(component, references);
        }
        else {
            component.endUpdate();
        }
    }
    else {
        if (references) {
            Sys$Component$_setReferences(component, references);
        }
        component.endUpdate();
    }
    return component;
}
=20
Sys.UI.MouseButton =3D function Sys$UI$MouseButton() {
    /// <summary locid=3D"M:J#Sys.UI.MouseButton.#ctor" />
    /// <field name=3D"leftButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.leftButton"></field>
    /// <field name=3D"middleButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.middleButton"></field>
    /// <field name=3D"rightButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.rightButton"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.MouseButton.prototype =3D {
    leftButton: 0,
    middleButton: 1,
    rightButton: 2
}
Sys.UI.MouseButton.registerEnum("Sys.UI.MouseButton");
=20
Sys.UI.Key =3D function Sys$UI$Key() {
    /// <summary locid=3D"M:J#Sys.UI.Key.#ctor" />
    /// <field name=3D"backspace" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.backspace"></field>
    /// <field name=3D"tab" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.tab"></field>
    /// <field name=3D"enter" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.enter"></field>
    /// <field name=3D"esc" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.esc"></field>
    /// <field name=3D"space" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.space"></field>
    /// <field name=3D"pageUp" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.pageUp"></field>
    /// <field name=3D"pageDown" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.pageDown"></field>
    /// <field name=3D"end" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.end"></field>
    /// <field name=3D"home" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.home"></field>
    /// <field name=3D"left" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.left"></field>
    /// <field name=3D"up" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.up"></field>
    /// <field name=3D"right" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.right"></field>
    /// <field name=3D"down" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.down"></field>
    /// <field name=3D"del" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.del"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.Key.prototype =3D {
    backspace: 8,
    tab: 9,
    enter: 13,
    esc: 27,
    space: 32,
    pageUp: 33,
    pageDown: 34,
    end: 35,
    home: 36,
    left: 37,
    up: 38,
    right: 39,
    down: 40,
    del: 127
}
Sys.UI.Key.registerEnum("Sys.UI.Key");
=20
Sys.UI.Point =3D function Sys$UI$Point(x, y) {
    /// <summary locid=3D"M:J#Sys.UI.Point.#ctor" />
    /// <param name=3D"x" type=3D"Number"></param>
    /// <param name=3D"y" type=3D"Number"></param>
    /// <field name=3D"x" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Point.x"></field>
    /// <field name=3D"y" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Point.y"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "x", type: Number},
        {name: "y", type: Number}
    ]);
    if (e) throw e;
    this.x =3D Math.round(x);
    this.y =3D Math.round(y);
}
Sys.UI.Point.registerClass('Sys.UI.Point');
=20
Sys.UI.Bounds =3D function Sys$UI$Bounds(x, y, width, height) {
    /// <summary locid=3D"M:J#Sys.UI.Bounds.#ctor" />
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"height" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"width" type=3D"Number" integer=3D"true"></param>
    /// <field name=3D"x" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.x"></field>
    /// <field name=3D"y" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.y"></field>
    /// <field name=3D"height" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.height"></field>
    /// <field name=3D"width" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.width"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true},
        {name: "height", type: Number, integer: true},
        {name: "width", type: Number, integer: true}
    ]);
    if (e) throw e;
    this.x =3D x;
    this.y =3D y;
    this.height =3D height;
    this.width =3D width;
}
Sys.UI.Bounds.registerClass('Sys.UI.Bounds');
=20
Sys.UI.DomEvent =3D function Sys$UI$DomEvent(eventObject) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.#ctor" />
    /// <param name=3D"eventObject"></param>
    /// <field name=3D"altKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.altKey"></field>
    /// <field name=3D"button" type=3D"Sys.UI.MouseButton" =
locid=3D"F:J#Sys.UI.DomEvent.button"></field>
    /// <field name=3D"charCode" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.charCode"></field>
    /// <field name=3D"clientX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.clientX"></field>
    /// <field name=3D"clientY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.clientY"></field>
    /// <field name=3D"ctrlKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.ctrlKey"></field>
    /// <field name=3D"keyCode" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.keyCode"></field>
    /// <field name=3D"offsetX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.offsetX"></field>
    /// <field name=3D"offsetY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.offsetY"></field>
    /// <field name=3D"screenX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.screenX"></field>
    /// <field name=3D"screenY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.screenY"></field>
    /// <field name=3D"shiftKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.shiftKey"></field>
    /// <field name=3D"target" =
locid=3D"F:J#Sys.UI.DomEvent.target"></field>
    /// <field name=3D"type" type=3D"String" =
locid=3D"F:J#Sys.UI.DomEvent.type"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "eventObject"}
    ]);
    if (e) throw e;
    var e =3D eventObject;
    var etype =3D this.type =3D e.type.toLowerCase();
    this.rawEvent =3D e;
    this.altKey =3D e.altKey;
    if (typeof(e.button) !=3D=3D 'undefined') {
        this.button =3D (typeof(e.which) !=3D=3D 'undefined') ? e.button =
:
            (e.button =3D=3D=3D 4) ? Sys.UI.MouseButton.middleButton :
            (e.button =3D=3D=3D 2) ? Sys.UI.MouseButton.rightButton :
            Sys.UI.MouseButton.leftButton;
    }
    if (etype =3D=3D=3D 'keypress') {
        this.charCode =3D e.charCode || e.keyCode;
    }
    else if (e.keyCode && (e.keyCode =3D=3D=3D 46)) {
        this.keyCode =3D 127;
    }
    else {
        this.keyCode =3D e.keyCode;
    }
    this.clientX =3D e.clientX;
    this.clientY =3D e.clientY;
    this.ctrlKey =3D e.ctrlKey;
    this.target =3D e.target ? e.target : e.srcElement;
    if (!etype.startsWith('key')) {
        if ((typeof(e.offsetX) !=3D=3D 'undefined') && =
(typeof(e.offsetY) !=3D=3D 'undefined')) {
            this.offsetX =3D e.offsetX;
            this.offsetY =3D e.offsetY;
        }
        else if (this.target && (this.target.nodeType !=3D=3D 3) && =
(typeof(e.clientX) =3D=3D=3D 'number')) {
            var loc =3D Sys.UI.DomElement.getLocation(this.target);
            var w =3D Sys.UI.DomElement._getWindow(this.target);
            this.offsetX =3D (w.pageXOffset || 0) + e.clientX - loc.x;
            this.offsetY =3D (w.pageYOffset || 0) + e.clientY - loc.y;
        }
    }
    this.screenX =3D e.screenX;
    this.screenY =3D e.screenY;
    this.shiftKey =3D e.shiftKey;
}
    function Sys$UI$DomEvent$preventDefault() {
        /// <summary locid=3D"M:J#Sys.UI.DomEvent.preventDefault" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this.rawEvent.preventDefault) {
            this.rawEvent.preventDefault();
        }
        else if (window.event) {
            this.rawEvent.returnValue =3D false;
        }
    }
    function Sys$UI$DomEvent$stopPropagation() {
        /// <summary locid=3D"M:J#Sys.UI.DomEvent.stopPropagation" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this.rawEvent.stopPropagation) {
            this.rawEvent.stopPropagation();
        }
        else if (window.event) {
            this.rawEvent.cancelBubble =3D true;
        }
    }
Sys.UI.DomEvent.prototype =3D {
    preventDefault: Sys$UI$DomEvent$preventDefault,
    stopPropagation: Sys$UI$DomEvent$stopPropagation
}
Sys.UI.DomEvent.registerClass('Sys.UI.DomEvent');
var $addHandler =3D Sys.UI.DomEvent.addHandler =3D function =
Sys$UI$DomEvent$addHandler(element, eventName, handler) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.addHandler" />
    /// <param name=3D"element"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    if (eventName =3D=3D=3D "error") throw =
Error.invalidOperation(Sys.Res.addHandlerCantBeUsedForError);
    if (!element._events) {
        element._events =3D {};
    }
    var eventCache =3D element._events[eventName];
    if (!eventCache) {
        element._events[eventName] =3D eventCache =3D [];
    }
    var browserHandler;
    if (element.addEventListener) {
        browserHandler =3D function(e) {
            return handler.call(element, new Sys.UI.DomEvent(e));
        }
        element.addEventListener(eventName, browserHandler, false);
    }
    else if (element.attachEvent) {
        browserHandler =3D function() {
            var e =3D {};
            try {e =3D Sys.UI.DomElement._getWindow(element).event} =
catch(ex) {}
            return handler.call(element, new Sys.UI.DomEvent(e));
        }
        element.attachEvent('on' + eventName, browserHandler);
    }
    eventCache[eventCache.length] =3D {handler: handler, browserHandler: =
browserHandler};
}
var $addHandlers =3D Sys.UI.DomEvent.addHandlers =3D function =
Sys$UI$DomEvent$addHandlers(element, events, handlerOwner) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.addHandlers" />
    /// <param name=3D"element"></param>
    /// <param name=3D"events" type=3D"Object"></param>
    /// <param name=3D"handlerOwner" optional=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"},
        {name: "events", type: Object},
        {name: "handlerOwner", optional: true}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    for (var name in events) {
        var handler =3D events[name];
        if (typeof(handler) !=3D=3D 'function') throw =
Error.invalidOperation(Sys.Res.cantAddNonFunctionhandler);
        if (handlerOwner) {
            handler =3D Function.createDelegate(handlerOwner, handler);
        }
        $addHandler(element, name, handler);
    }
}
var $clearHandlers =3D Sys.UI.DomEvent.clearHandlers =3D function =
Sys$UI$DomEvent$clearHandlers(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.clearHandlers" />
    /// <param name=3D"element"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    if (element._events) {
        var cache =3D element._events;
        for (var name in cache) {
            var handlers =3D cache[name];
            for (var i =3D handlers.length - 1; i >=3D 0; i--) {
                $removeHandler(element, name, handlers[i].handler);
            }
        }
        element._events =3D null;
    }
}
var $removeHandler =3D Sys.UI.DomEvent.removeHandler =3D function =
Sys$UI$DomEvent$removeHandler(element, eventName, handler) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.removeHandler" />
    /// <param name=3D"element"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    var browserHandler =3D null;
    if ((typeof(element._events) !=3D=3D 'object') || (element._events =
=3D=3D null)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
    var cache =3D element._events[eventName];
    if (!(cache instanceof Array)) throw =
Error.invalidOperation(Sys.Res.eventHandlerInvalid);
    for (var i =3D 0, l =3D cache.length; i < l; i++) {
        if (cache[i].handler =3D=3D=3D handler) {
            browserHandler =3D cache[i].browserHandler;
            break;
        }
    }
    if (typeof(browserHandler) !=3D=3D 'function') throw =
Error.invalidOperation(Sys.Res.eventHandlerInvalid);
    if (element.removeEventListener) {
        element.removeEventListener(eventName, browserHandler, false);
    }
    else if (element.detachEvent) {
        element.detachEvent('on' + eventName, browserHandler);
    }
    cache.splice(i, 1);
}
Sys.UI.DomEvent._ensureDomNode =3D function =
Sys$UI$DomEvent$_ensureDomNode(element) {
    if (element.tagName && (element.tagName.toUpperCase() =3D=3D=3D =
"SCRIPT")) return;
   =20
    var doc =3D element.ownerDocument || element.document || element;
    if ((typeof(element.document) !=3D=3D 'object') && (element !=3D =
doc) && (typeof(element.nodeType) !=3D=3D 'number')) {
        throw Error.argument("element", Sys.Res.argumentDomNode);
    }
}
=20
Sys.UI.DomElement =3D function Sys$UI$DomElement() {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.DomElement.registerClass('Sys.UI.DomElement');
Sys.UI.DomElement.addCssClass =3D function =
Sys$UI$DomElement$addCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.addCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    if (!Sys.UI.DomElement.containsCssClass(element, className)) {
        if (element.className =3D=3D=3D '') {
            element.className =3D className;
        }
        else {
            element.className +=3D ' ' + className;
        }
    }
}
Sys.UI.DomElement.containsCssClass =3D function =
Sys$UI$DomElement$containsCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.containsCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    return Array.contains(element.className.split(' '), className);
}
Sys.UI.DomElement.getBounds =3D function =
Sys$UI$DomElement$getBounds(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getBounds" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Sys.UI.Bounds"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    var offset =3D Sys.UI.DomElement.getLocation(element);
    return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || =
0, element.offsetHeight || 0);
}
var $get =3D Sys.UI.DomElement.getElementById =3D function =
Sys$UI$DomElement$getElementById(id, element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getElementById" />
    /// <param name=3D"id" type=3D"String"></param>
    /// <param name=3D"element" domElement=3D"true" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns domElement=3D"true" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "id", type: String},
        {name: "element", mayBeNull: true, domElement: true, optional: =
true}
    ]);
    if (e) throw e;
    if (!element) return document.getElementById(id);
    if (element.getElementById) return element.getElementById(id);
    var nodeQueue =3D [];
    var childNodes =3D element.childNodes;
    for (var i =3D 0; i < childNodes.length; i++) {
        var node =3D childNodes[i];
        if (node.nodeType =3D=3D 1) {
            nodeQueue[nodeQueue.length] =3D node;
        }
    }
    while (nodeQueue.length) {
        node =3D nodeQueue.shift();
        if (node.id =3D=3D id) {
            return node;
        }
        childNodes =3D node.childNodes;
        for (i =3D 0; i < childNodes.length; i++) {
            node =3D childNodes[i];
            if (node.nodeType =3D=3D 1) {
                nodeQueue[nodeQueue.length] =3D node;
            }
        }
    }
    return null;
}
switch(Sys.Browser.agent) {
    case Sys.Browser.InternetExplorer:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if (element.self || element.nodeType =3D=3D=3D 9) return new =
Sys.UI.Point(0,0);
            var clientRect =3D element.getBoundingClientRect();
            if (!clientRect) {
                return new Sys.UI.Point(0,0);
            }
            var documentElement =3D =
element.ownerDocument.documentElement;
            var offsetX =3D clientRect.left - 2 + =
documentElement.scrollLeft,
                offsetY =3D clientRect.top - 2 + =
documentElement.scrollTop;
           =20
            try {
                var f =3D =
element.ownerDocument.parentWindow.frameElement || null;
                if (f) {
                    var offset =3D (f.frameBorder =3D=3D=3D "0" || =
f.frameBorder =3D=3D=3D "no") ? 2 : 0;
                    offsetX +=3D offset;
                    offsetY +=3D offset;
                }
            }
            catch(ex) {
            }   =20
           =20
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
    case Sys.Browser.Safari:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);
            var offsetX =3D 0;
            var offsetY =3D 0;
            var previous =3D null;
            var previousStyle =3D null;
            var currentStyle;
            for (var parent =3D element; parent; previous =3D parent, =
previousStyle =3D currentStyle, parent =3D parent.offsetParent) {
                currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                var tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                if ((parent.offsetLeft || parent.offsetTop) &&
                    ((tagName !=3D=3D "BODY") || (!previousStyle || =
previousStyle.position !=3D=3D "absolute"))) {
                    offsetX +=3D parent.offsetLeft;
                    offsetY +=3D parent.offsetTop;
                }
            }
            currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(element);
            var elementPosition =3D currentStyle ? currentStyle.position =
: null;
            if (!elementPosition || (elementPosition !=3D=3D =
"absolute")) {
                for (var parent =3D element.parentNode; parent; parent =
=3D parent.parentNode) {
                    tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                    if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D =
"HTML") && (parent.scrollLeft || parent.scrollTop)) {
                        offsetX -=3D (parent.scrollLeft || 0);
                        offsetY -=3D (parent.scrollTop || 0);
                    }
                    currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                    var parentPosition =3D currentStyle ? =
currentStyle.position : null;
                    if (parentPosition && (parentPosition =3D=3D=3D =
"absolute")) break;
                }
            }
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
    case Sys.Browser.Opera:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);
            var offsetX =3D 0;
            var offsetY =3D 0;
            var previous =3D null;
            for (var parent =3D element; parent; previous =3D parent, =
parent =3D parent.offsetParent) {
                var tagName =3D parent.tagName;
                offsetX +=3D parent.offsetLeft || 0;
                offsetY +=3D parent.offsetTop || 0;
            }
            var elementPosition =3D element.style.position;
            var elementPositioned =3D elementPosition && =
(elementPosition !=3D=3D "static");
            for (var parent =3D element.parentNode; parent; parent =3D =
parent.parentNode) {
                tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D "HTML") =
&& (parent.scrollLeft || parent.scrollTop) &&
                    ((elementPositioned &&
                    ((parent.style.overflow =3D=3D=3D "scroll") || =
(parent.style.overflow =3D=3D=3D "auto"))))) {
                    offsetX -=3D (parent.scrollLeft || 0);
                    offsetY -=3D (parent.scrollTop || 0);
                }
                var parentPosition =3D (parent && parent.style) ? =
parent.style.position : null;
                elementPositioned =3D elementPositioned || =
(parentPosition && (parentPosition !=3D=3D "static"));
            }
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
    default:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);
            var offsetX =3D 0;
            var offsetY =3D 0;
            var previous =3D null;
            var previousStyle =3D null;
            var currentStyle =3D null;
            for (var parent =3D element; parent; previous =3D parent, =
previousStyle =3D currentStyle, parent =3D parent.offsetParent) {
                var tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                if ((parent.offsetLeft || parent.offsetTop) &&
                    !((tagName =3D=3D=3D "BODY") &&
                    (!previousStyle || previousStyle.position !=3D=3D =
"absolute"))) {
                    offsetX +=3D parent.offsetLeft;
                    offsetY +=3D parent.offsetTop;
                }
                if (previous !=3D=3D null && currentStyle) {
                    if ((tagName !=3D=3D "TABLE") && (tagName !=3D=3D =
"TD") && (tagName !=3D=3D "HTML")) {
                        offsetX +=3D =
parseInt(currentStyle.borderLeftWidth) || 0;
                        offsetY +=3D =
parseInt(currentStyle.borderTopWidth) || 0;
                    }
                    if (tagName =3D=3D=3D "TABLE" &&
                        (currentStyle.position =3D=3D=3D "relative" || =
currentStyle.position =3D=3D=3D "absolute")) {
                        offsetX +=3D parseInt(currentStyle.marginLeft) =
|| 0;
                        offsetY +=3D parseInt(currentStyle.marginTop) || =
0;
                    }
                }
            }
            currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(element);
            var elementPosition =3D currentStyle ? currentStyle.position =
: null;
            if (!elementPosition || (elementPosition !=3D=3D =
"absolute")) {
                for (var parent =3D element.parentNode; parent; parent =
=3D parent.parentNode) {
                    tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                    if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D =
"HTML") && (parent.scrollLeft || parent.scrollTop)) {
                        offsetX -=3D (parent.scrollLeft || 0);
                        offsetY -=3D (parent.scrollTop || 0);
                        currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                        if (currentStyle) {
                            offsetX +=3D =
parseInt(currentStyle.borderLeftWidth) || 0;
                            offsetY +=3D =
parseInt(currentStyle.borderTopWidth) || 0;
                        }
                    }
                }
            }
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
}
Sys.UI.DomElement.removeCssClass =3D function =
Sys$UI$DomElement$removeCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.removeCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    var currentClassName =3D ' ' + element.className + ' ';
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index >=3D 0) {
        element.className =3D (currentClassName.substr(0, index) + ' ' +
            currentClassName.substring(index + className.length + 1, =
currentClassName.length)).trim();
    }
}
Sys.UI.DomElement.setLocation =3D function =
Sys$UI$DomElement$setLocation(element, x, y) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setLocation" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true}
    ]);
    if (e) throw e;
    var style =3D element.style;
    style.position =3D 'absolute';
    style.left =3D x + "px";
    style.top =3D y + "px";
}
Sys.UI.DomElement.toggleCssClass =3D function =
Sys$UI$DomElement$toggleCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.toggleCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    if (Sys.UI.DomElement.containsCssClass(element, className)) {
        Sys.UI.DomElement.removeCssClass(element, className);
    }
    else {
        Sys.UI.DomElement.addCssClass(element, className);
    }
}
Sys.UI.DomElement.getVisibilityMode =3D function =
Sys$UI$DomElement$getVisibilityMode(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getVisibilityMode" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Sys.UI.VisibilityMode"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    return (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide) ?
        Sys.UI.VisibilityMode.hide :
        Sys.UI.VisibilityMode.collapse;
}
Sys.UI.DomElement.setVisibilityMode =3D function =
Sys$UI$DomElement$setVisibilityMode(element, value) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setVisibilityMode" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"value" type=3D"Sys.UI.VisibilityMode"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "value", type: Sys.UI.VisibilityMode}
    ]);
    if (e) throw e;
    Sys.UI.DomElement._ensureOldDisplayMode(element);
    if (element._visibilityMode !=3D=3D value) {
        element._visibilityMode =3D value;
        if (Sys.UI.DomElement.getVisible(element) =3D=3D=3D false) {
            if (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide) {
                element.style.display =3D element._oldDisplayMode;
            }
            else {
                element.style.display =3D 'none';
            }
        }
        element._visibilityMode =3D value;
    }
}
Sys.UI.DomElement.getVisible =3D function =
Sys$UI$DomElement$getVisible(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getVisible" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    var style =3D element.currentStyle || =
Sys.UI.DomElement._getCurrentStyle(element);
    if (!style) return true;
    return (style.visibility !=3D=3D 'hidden') && (style.display !=3D=3D =
'none');
}
Sys.UI.DomElement.setVisible =3D function =
Sys$UI$DomElement$setVisible(element, value) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setVisible" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"value" type=3D"Boolean"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "value", type: Boolean}
    ]);
    if (e) throw e;
    if (value !=3D=3D Sys.UI.DomElement.getVisible(element)) {
        Sys.UI.DomElement._ensureOldDisplayMode(element);
        element.style.visibility =3D value ? 'visible' : 'hidden';
        if (value || (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide)) {
            element.style.display =3D element._oldDisplayMode;
        }
        else {
            element.style.display =3D 'none';
        }
    }
}
Sys.UI.DomElement._ensureOldDisplayMode =3D function =
Sys$UI$DomElement$_ensureOldDisplayMode(element) {
    if (!element._oldDisplayMode) {
        var style =3D element.currentStyle || =
Sys.UI.DomElement._getCurrentStyle(element);
        element._oldDisplayMode =3D style ? style.display : null;
        if (!element._oldDisplayMode || element._oldDisplayMode =
=3D=3D=3D 'none') {
            switch(element.tagName.toUpperCase()) {
                case 'DIV': case 'P': case 'ADDRESS': case 'BLOCKQUOTE': =
case 'BODY': case 'COL':
                case 'COLGROUP': case 'DD': case 'DL': case 'DT': case =
'FIELDSET': case 'FORM':
                case 'H1': case 'H2': case 'H3': case 'H4': case 'H5': =
case 'H6': case 'HR':
                case 'IFRAME': case 'LEGEND': case 'OL': case 'PRE': =
case 'TABLE': case 'TD':
                case 'TH': case 'TR': case 'UL':
                    element._oldDisplayMode =3D 'block';
                    break;
                case 'LI':
                    element._oldDisplayMode =3D 'list-item';
                    break;
                default:
                    element._oldDisplayMode =3D 'inline';
            }
        }
    }
}
Sys.UI.DomElement._getWindow =3D function =
Sys$UI$DomElement$_getWindow(element) {
    var doc =3D element.ownerDocument || element.document || element;
    return doc.defaultView || doc.parentWindow;
}
Sys.UI.DomElement._getCurrentStyle =3D function =
Sys$UI$DomElement$_getCurrentStyle(element) {
    if (element.nodeType =3D=3D=3D 3) return null;
    var w =3D Sys.UI.DomElement._getWindow(element);
    if (element.documentElement) element =3D element.documentElement;
    var computedStyle =3D (w && (element !=3D=3D w) && =
w.getComputedStyle) ?
        w.getComputedStyle(element, null) :
        element.currentStyle || element.style;
    if (!computedStyle && (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.Safari) && element.style) {
        var oldDisplay =3D element.style.display;
        var oldPosition =3D element.style.position;
        element.style.position =3D 'absolute';
        element.style.display =3D 'block';
        var style =3D w.getComputedStyle(element, null);
        element.style.display =3D oldDisplay;
        element.style.position =3D oldPosition;
        computedStyle =3D {};
        for (var n in style) {
            computedStyle[n] =3D style[n];
        }
        computedStyle.display =3D 'none';
    }
    return computedStyle;
}
=20
Sys.IContainer =3D function Sys$IContainer() {
    throw Error.notImplemented();
}
    function Sys$IContainer$addComponent(component) {
        /// <summary locid=3D"M:J#Sys.IContainer.addComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$IContainer$removeComponent(component) {
        /// <summary locid=3D"M:J#Sys.IContainer.removeComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$IContainer$findComponent(id) {
        /// <summary locid=3D"M:J#Sys.IContainer.findComponent" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <returns type=3D"Sys.Component"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$IContainer$getComponents() {
        /// <summary locid=3D"M:J#Sys.IContainer.getComponents" />
        /// <returns type=3D"Array" =
elementType=3D"Sys.Component"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
Sys.IContainer.prototype =3D {
    addComponent: Sys$IContainer$addComponent,
    removeComponent: Sys$IContainer$removeComponent,
    findComponent: Sys$IContainer$findComponent,
    getComponents: Sys$IContainer$getComponents
}
Sys.IContainer.registerInterface("Sys.IContainer");
=20
Sys._ScriptLoader =3D function Sys$_ScriptLoader() {
    this._scriptsToLoad =3D null;
    this._sessions =3D [];
    this._scriptLoadedDelegate =3D Function.createDelegate(this, =
this._scriptLoadedHandler);
}
    function Sys$_ScriptLoader$dispose() {
        this._stopSession();
        this._loading =3D false;
        if(this._events) {
            delete this._events;
        }
        this._sessions =3D null;
        this._currentSession =3D null;
        this._scriptLoadedDelegate =3D null;       =20
    }
    function Sys$_ScriptLoader$loadScripts(scriptTimeout, =
allScriptsLoadedCallback, scriptLoadFailedCallback, =
scriptLoadTimeoutCallback) {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.loadScripts" />
        /// <param name=3D"scriptTimeout" type=3D"Number" =
integer=3D"true"></param>
        /// <param name=3D"allScriptsLoadedCallback" type=3D"Function" =
mayBeNull=3D"true"></param>
        /// <param name=3D"scriptLoadFailedCallback" type=3D"Function" =
mayBeNull=3D"true"></param>
        /// <param name=3D"scriptLoadTimeoutCallback" type=3D"Function" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptTimeout", type: Number, integer: true},
            {name: "allScriptsLoadedCallback", type: Function, =
mayBeNull: true},
            {name: "scriptLoadFailedCallback", type: Function, =
mayBeNull: true},
            {name: "scriptLoadTimeoutCallback", type: Function, =
mayBeNull: true}
        ]);
        if (e) throw e;
        var session =3D {
            allScriptsLoadedCallback: allScriptsLoadedCallback,
            scriptLoadFailedCallback: scriptLoadFailedCallback,
            scriptLoadTimeoutCallback: scriptLoadTimeoutCallback,
            scriptsToLoad: this._scriptsToLoad,
            scriptTimeout: scriptTimeout };
        this._scriptsToLoad =3D null;
        this._sessions[this._sessions.length] =3D session;
       =20
        if (!this._loading) {
            this._nextSession();
        }
    }
    function Sys$_ScriptLoader$notifyScriptLoaded() {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.notifyScriptLoaded" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
       =20
        if(!this._loading) {
            return;
        }
        this._currentTask._notified++;
       =20
        if(Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) {          =20
            if(this._currentTask._notified =3D=3D=3D 1) {
                window.setTimeout(Function.createDelegate(this, =
function() {
                    =
this._scriptLoadedHandler(this._currentTask.get_scriptElement(), true);
                }), 0);
            }
        }
    }
    function Sys$_ScriptLoader$queueCustomScriptTag(scriptAttributes) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueCustomScriptTag" />
        /// <param name=3D"scriptAttributes" =
mayBeNull=3D"false"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptAttributes"}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, scriptAttributes);
    }
    function Sys$_ScriptLoader$queueScriptBlock(scriptContent) {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.queueScriptBlock" />
        /// <param name=3D"scriptContent" type=3D"String" =
mayBeNull=3D"false"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptContent", type: String}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, {text: scriptContent});
    }
    function Sys$_ScriptLoader$queueScriptReference(scriptUrl) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueScriptReference" />
        /// <param name=3D"scriptUrl" type=3D"String" =
mayBeNull=3D"false"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptUrl", type: String}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, {src: scriptUrl});
    }
    function Sys$_ScriptLoader$_createScriptElement(queuedScript) {
        var scriptElement =3D document.createElement('script');
        scriptElement.type =3D 'text/javascript';
        for (var attr in queuedScript) {
            scriptElement[attr] =3D queuedScript[attr];
        }
       =20
        return scriptElement;
    }
    function Sys$_ScriptLoader$_loadScriptsInternal() {
        var session =3D this._currentSession;
        if (session.scriptsToLoad && session.scriptsToLoad.length > 0) {
            var nextScript =3D Array.dequeue(session.scriptsToLoad);
            var scriptElement =3D this._createScriptElement(nextScript);
           =20
            if (scriptElement.text && Sys.Browser.agent =3D=3D=3D =
Sys.Browser.Safari) {
                scriptElement.innerHTML =3D scriptElement.text;
                delete scriptElement.text;
            }           =20
            if (typeof(nextScript.src) =3D=3D=3D "string") {
                this._currentTask =3D new =
Sys._ScriptLoaderTask(scriptElement, this._scriptLoadedDelegate);
                this._currentTask.execute();
            }
            else {
                var headElements =3D =
document.getElementsByTagName('head');
                if (headElements.length =3D=3D=3D 0) {
                     throw new =
Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
                }
                else {
                     headElements[0].appendChild(scriptElement);
                }
               =20
               =20
                Sys._ScriptLoader._clearScript(scriptElement);
                this._loadScriptsInternal();
            }
        }
        else {
            this._stopSession();
            var callback =3D session.allScriptsLoadedCallback;
            if(callback) {
                callback(this);
            }
            this._nextSession();
        }
    }
    function Sys$_ScriptLoader$_nextSession() {
        if (this._sessions.length =3D=3D=3D 0) {
            this._loading =3D false;
            this._currentSession =3D null;
            return;
        }
        this._loading =3D true;
       =20
        var session =3D Array.dequeue(this._sessions);
        this._currentSession =3D session;
        this._loadScriptsInternal();
    }
    function Sys$_ScriptLoader$_raiseError(multipleCallbacks) {
        var callback =3D this._currentSession.scriptLoadFailedCallback;
        var scriptElement =3D this._currentTask.get_scriptElement();
        this._stopSession();
       =20
        if(callback) {
            callback(this, scriptElement, multipleCallbacks);
            this._nextSession();
        }
        else {
            this._loading =3D false;
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(scriptElement.src, =
multipleCallbacks);
        }
    }
    function Sys$_ScriptLoader$_scriptLoadedHandler(scriptElement, =
loaded) {
        if(loaded && this._currentTask._notified) {
            if(this._currentTask._notified > 1) {
                this._raiseError(true);
            }
            else {
                Array.add(Sys._ScriptLoader._getLoadedScripts(), =
scriptElement.src);
                this._currentTask.dispose();
                this._currentTask =3D null;
                this._loadScriptsInternal();
            }
        }
        else {
            this._raiseError(false);
        }
    }
    function Sys$_ScriptLoader$_scriptLoadTimeoutHandler() {
        var callback =3D this._currentSession.scriptLoadTimeoutCallback;
        this._stopSession();
        if(callback) {
            callback(this);
        }
        this._nextSession();
    }
    function Sys$_ScriptLoader$_stopSession() {
        if(this._currentTask) {
            this._currentTask.dispose();
            this._currentTask =3D null;
        }
    }
Sys._ScriptLoader.prototype =3D {
    dispose: Sys$_ScriptLoader$dispose,
    loadScripts: Sys$_ScriptLoader$loadScripts,
    notifyScriptLoaded: Sys$_ScriptLoader$notifyScriptLoaded,
    queueCustomScriptTag: Sys$_ScriptLoader$queueCustomScriptTag,
    queueScriptBlock: Sys$_ScriptLoader$queueScriptBlock,
    queueScriptReference: Sys$_ScriptLoader$queueScriptReference,
    _createScriptElement: Sys$_ScriptLoader$_createScriptElement,
    _loadScriptsInternal: Sys$_ScriptLoader$_loadScriptsInternal,
    _nextSession: Sys$_ScriptLoader$_nextSession,
    _raiseError: Sys$_ScriptLoader$_raiseError,
    _scriptLoadedHandler: Sys$_ScriptLoader$_scriptLoadedHandler,
    _scriptLoadTimeoutHandler: =
Sys$_ScriptLoader$_scriptLoadTimeoutHandler,
    _stopSession: Sys$_ScriptLoader$_stopSession   =20
}
Sys._ScriptLoader.registerClass('Sys._ScriptLoader', null, =
Sys.IDisposable);
Sys._ScriptLoader.getInstance =3D function =
Sys$_ScriptLoader$getInstance() {
    var sl =3D Sys._ScriptLoader._activeInstance;
    if(!sl) {
        sl =3D Sys._ScriptLoader._activeInstance =3D new =
Sys._ScriptLoader();
    }
    return sl;
}
Sys._ScriptLoader.isScriptLoaded =3D function =
Sys$_ScriptLoader$isScriptLoaded(scriptSrc) {
    var dummyScript =3D document.createElement('script');
    dummyScript.src =3D scriptSrc;
    return Array.contains(Sys._ScriptLoader._getLoadedScripts(), =
dummyScript.src);
}
Sys._ScriptLoader.readLoadedScripts =3D function =
Sys$_ScriptLoader$readLoadedScripts() {
    if(!Sys._ScriptLoader._referencedScripts) {
        var referencedScripts =3D Sys._ScriptLoader._referencedScripts =
=3D [];
        var existingScripts =3D document.getElementsByTagName('script');
        for (i =3D existingScripts.length - 1; i >=3D 0; i--) {
            var scriptNode =3D existingScripts[i];
            var scriptSrc =3D scriptNode.src;
            if (scriptSrc.length) {
                if (!Array.contains(referencedScripts, scriptSrc)) {
                    Array.add(referencedScripts, scriptSrc);
                }
            }
        }
    }
}
Sys._ScriptLoader._clearScript =3D function =
Sys$_ScriptLoader$_clearScript(scriptElement) {
    if (!Sys.Debug.isDebug) {
        scriptElement.parentNode.removeChild(scriptElement);
    }
}
Sys._ScriptLoader._errorScriptLoadFailed =3D function =
Sys$_ScriptLoader$_errorScriptLoadFailed(scriptUrl, multipleCallbacks) {
    var errorMessage;
    if(multipleCallbacks) {
        errorMessage =3D Sys.Res.scriptLoadMultipleCallbacks;
    }
    else {
        errorMessage =3D Sys.Res.scriptLoadFailedDebug;
    }
    var displayMessage =3D "Sys.ScriptLoadFailedException: " + =
String.format(errorMessage, scriptUrl);
    var e =3D Error.create(displayMessage, {name: =
'Sys.ScriptLoadFailedException', 'scriptUrl': scriptUrl });
    e.popStackFrame();
    return e;
}
Sys._ScriptLoader._getLoadedScripts =3D function =
Sys$_ScriptLoader$_getLoadedScripts() {
    if(!Sys._ScriptLoader._referencedScripts) {
        Sys._ScriptLoader._referencedScripts =3D [];
        Sys._ScriptLoader.readLoadedScripts();
    }
    return Sys._ScriptLoader._referencedScripts;
}
=20
Sys._ScriptLoaderTask =3D function Sys$_ScriptLoaderTask(scriptElement, =
completedCallback) {
    /// <summary locid=3D"M:J#Sys._ScriptLoaderTask.#ctor" />
    /// <param name=3D"scriptElement" domElement=3D"true"></param>
    /// <param name=3D"completedCallback" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "scriptElement", domElement: true},
        {name: "completedCallback", type: Function}
    ]);
    if (e) throw e;
    this._scriptElement =3D scriptElement;
    this._completedCallback =3D completedCallback;
    this._notified =3D 0;
}
    function Sys$_ScriptLoaderTask$get_scriptElement() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys._ScriptLoaderTask.scriptElement"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._scriptElement;
    }
    function Sys$_ScriptLoaderTask$dispose() {
        if(this._disposed) {
            return;
        }
        this._disposed =3D true;
        this._removeScriptElementHandlers();
        Sys._ScriptLoader._clearScript(this._scriptElement);
        this._scriptElement =3D null;
    }
    function Sys$_ScriptLoaderTask$execute() {
        /// <summary locid=3D"M:J#Sys._ScriptLoaderTask.execute" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._addScriptElementHandlers();
        var headElements =3D document.getElementsByTagName('head');
        if (headElements.length =3D=3D=3D 0) {
             throw new =
Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
        }
        else {
             headElements[0].appendChild(this._scriptElement);
        }
    }
    function Sys$_ScriptLoaderTask$_addScriptElementHandlers() {
        this._scriptLoadDelegate =3D Function.createDelegate(this, =
this._scriptLoadHandler);
       =20
        if (Sys.Browser.agent !=3D=3D Sys.Browser.InternetExplorer) {
            this._scriptElement.readyState =3D 'loaded';
            $addHandler(this._scriptElement, 'load', =
this._scriptLoadDelegate);
        }
        else {
            $addHandler(this._scriptElement, 'readystatechange', =
this._scriptLoadDelegate);
        }   =20
        if (this._scriptElement.addEventListener) {
            this._scriptErrorDelegate =3D Function.createDelegate(this, =
this._scriptErrorHandler);
            this._scriptElement.addEventListener('error', =
this._scriptErrorDelegate, false);
        }
    }
    function Sys$_ScriptLoaderTask$_removeScriptElementHandlers() {
        if(this._scriptLoadDelegate) {
            var scriptElement =3D this.get_scriptElement();
            if (Sys.Browser.agent !=3D=3D Sys.Browser.InternetExplorer) =
{
                $removeHandler(scriptElement, 'load', =
this._scriptLoadDelegate);
            }
            else {
                $removeHandler(scriptElement, 'readystatechange', =
this._scriptLoadDelegate);
            }
            if (this._scriptErrorDelegate) {
                this._scriptElement.removeEventListener('error', =
this._scriptErrorDelegate, false);
                this._scriptErrorDelegate =3D null;
            }
            this._scriptLoadDelegate =3D null;
        }
    }
    function Sys$_ScriptLoaderTask$_scriptErrorHandler() {
        if(this._disposed) {
            return;
        }
       =20
        this._completedCallback(this.get_scriptElement(), false);
    }
    function Sys$_ScriptLoaderTask$_scriptLoadHandler() {
        if(this._disposed) {
            return;
        }
        var scriptElement =3D this.get_scriptElement();
        if ((scriptElement.readyState !=3D=3D 'loaded') &&
            (scriptElement.readyState !=3D=3D 'complete')) {
            return;
        }
       =20
        var _this =3D this;
        window.setTimeout(function() {
            _this._completedCallback(scriptElement, true);
        }, 0);
    }
Sys._ScriptLoaderTask.prototype =3D {
    get_scriptElement: Sys$_ScriptLoaderTask$get_scriptElement,
    dispose: Sys$_ScriptLoaderTask$dispose,
    execute: Sys$_ScriptLoaderTask$execute,
    _addScriptElementHandlers: =
Sys$_ScriptLoaderTask$_addScriptElementHandlers,   =20
    _removeScriptElementHandlers: =
Sys$_ScriptLoaderTask$_removeScriptElementHandlers,   =20
    _scriptErrorHandler: Sys$_ScriptLoaderTask$_scriptErrorHandler,
    _scriptLoadHandler: Sys$_ScriptLoaderTask$_scriptLoadHandler =20
}
Sys._ScriptLoaderTask.registerClass("Sys._ScriptLoaderTask", null, =
Sys.IDisposable);
=20
Sys.ApplicationLoadEventArgs =3D function =
Sys$ApplicationLoadEventArgs(components, isPartialLoad) {
    /// <summary locid=3D"M:J#Sys.ApplicationLoadEventArgs.#ctor" />
    /// <param name=3D"components" type=3D"Array" =
elementType=3D"Sys.Component"></param>
    /// <param name=3D"isPartialLoad" type=3D"Boolean"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "components", type: Array, elementType: Sys.Component},
        {name: "isPartialLoad", type: Boolean}
    ]);
    if (e) throw e;
    Sys.ApplicationLoadEventArgs.initializeBase(this);
    this._components =3D components;
    this._isPartialLoad =3D isPartialLoad;
}
=20
    function Sys$ApplicationLoadEventArgs$get_components() {
        /// <value type=3D"Array" elementType=3D"Sys.Component" =
locid=3D"P:J#Sys.ApplicationLoadEventArgs.components"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._components;
    }
    function Sys$ApplicationLoadEventArgs$get_isPartialLoad() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.ApplicationLoadEventArgs.isPartialLoad"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._isPartialLoad;
    }
Sys.ApplicationLoadEventArgs.prototype =3D {
    get_components: Sys$ApplicationLoadEventArgs$get_components,
    get_isPartialLoad: Sys$ApplicationLoadEventArgs$get_isPartialLoad
}
Sys.ApplicationLoadEventArgs.registerClass('Sys.ApplicationLoadEventArgs'=
, Sys.EventArgs);
Sys.HistoryEventArgs =3D function Sys$HistoryEventArgs(state) {
    /// <summary locid=3D"M:J#Sys.HistoryEventArgs.#ctor" />
    /// <param name=3D"state" type=3D"Object"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "state", type: Object}
    ]);
    if (e) throw e;
    Sys.HistoryEventArgs.initializeBase(this);
    this._state =3D state;
}
    function Sys$HistoryEventArgs$get_state() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.HistoryEventArgs.state"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._state;
    }
Sys.HistoryEventArgs.prototype =3D {
    get_state: Sys$HistoryEventArgs$get_state
}
Sys.HistoryEventArgs.registerClass('Sys.HistoryEventArgs', =
Sys.EventArgs);
=20
Sys._Application =3D function Sys$_Application() {
    /// <summary locid=3D"M:J#Sys.Application.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys._Application.initializeBase(this);
    this._disposableObjects =3D [];
    this._components =3D {};
    this._createdComponents =3D [];
    this._secondPassComponents =3D [];
    this._appLoadHandler =3D null;
    this._beginRequestHandler =3D null;
    this._clientId =3D null;
    this._currentEntry =3D '';
    this._endRequestHandler =3D null;
    this._history =3D null;
    this._enableHistory =3D false;
    this._historyEnabledInScriptManager =3D false;
    this._historyFrame =3D null;
    this._historyInitialized =3D false;
    this._historyInitialLength =3D 0;
    this._historyLength =3D 0;
    this._historyPointIsNew =3D false;
    this._ignoreTimer =3D false;
    this._initialState =3D null;
    this._state =3D {};
    this._timerCookie =3D 0;
    this._timerHandler =3D null;
    this._uniqueId =3D null;
    this._unloadHandlerDelegate =3D Function.createDelegate(this, =
this._unloadHandler);
    this._loadHandlerDelegate =3D Function.createDelegate(this, =
this._loadHandler);
    Sys.UI.DomEvent.addHandler(window, "unload", =
this._unloadHandlerDelegate);
    Sys.UI.DomEvent.addHandler(window, "load", =
this._loadHandlerDelegate);
}
    function Sys$_Application$get_isCreatingComponents() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Application.isCreatingComponents"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._creatingComponents;
    }
    function Sys$_Application$get_stateString() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Application.stateString"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var hash =3D window.location.hash;
        if (this._isSafari2()) {
            var history =3D this._getHistory();
            if (history) {
                hash =3D history[window.history.length - =
this._historyInitialLength];
            }
        }
        if ((hash.length > 0) && (hash.charAt(0) =3D=3D=3D '#')) {
            hash =3D hash.substring(1);
        }
        if (Sys.Browser.agent =3D=3D=3D Sys.Browser.Firefox) {
            hash =3D this._serializeState(this._deserializeState(hash, =
true));
        }
        return hash;
    }
    function Sys$_Application$get_enableHistory() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Application.enableHistory"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._enableHistory;
    }
    function Sys$_Application$set_enableHistory(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        if (this._initialized && !this._initializing) {
            throw =
Error.invalidOperation(Sys.Res.historyCannotEnableHistory);
        }
        else if (this._historyEnabledInScriptManager && !value) {
            throw =
Error.invalidOperation(Sys.Res.invalidHistorySettingCombination);
        }
        this._enableHistory =3D value;
    }
    function Sys$_Application$add_init(handler) {
        /// <summary locid=3D"E:J#Sys.Application.init" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        if (this._initialized) {
            handler(this, Sys.EventArgs.Empty);
        }
        else {
            this.get_events().addHandler("init", handler);
        }
    }
    function Sys$_Application$remove_init(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("init", handler);
    }
    function Sys$_Application$add_load(handler) {
        /// <summary locid=3D"E:J#Sys.Application.load" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("load", handler);
    }
    function Sys$_Application$remove_load(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("load", handler);
    }
    function Sys$_Application$add_navigate(handler) {
        /// <summary locid=3D"E:J#Sys.Application.navigate" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("navigate", handler);
    }
    function Sys$_Application$remove_navigate(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("navigate", handler);
    }
    function Sys$_Application$add_unload(handler) {
        /// <summary locid=3D"E:J#Sys.Application.unload" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("unload", handler);
    }
    function Sys$_Application$remove_unload(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("unload", handler);
    }
    function Sys$_Application$addComponent(component) {
        /// <summary locid=3D"M:J#Sys.Application.addComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        var id =3D component.get_id();
        if (!id) throw Error.invalidOperation(Sys.Res.cantAddWithoutId);
        if (typeof(this._components[id]) !=3D=3D 'undefined') throw =
Error.invalidOperation(String.format(Sys.Res.appDuplicateComponent, =
id));
        this._components[id] =3D component;
    }
    function Sys$_Application$addHistoryPoint(state, title) {
        /// <summary locid=3D"M:J#Sys.Application.addHistoryPoint" />
        /// <param name=3D"state" type=3D"Object"></param>
        /// <param name=3D"title" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "state", type: Object},
            {name: "title", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        if (!this._enableHistory) throw =
Error.invalidOperation(Sys.Res.historyCannotAddHistoryPointWithHistoryDis=
abled);
        for (var n in state) {
            var v =3D state[n];
            var t =3D typeof(v);
            if ((v !=3D=3D null) && ((t =3D=3D=3D 'object') || (t =
=3D=3D=3D 'function') || (t =3D=3D=3D 'undefined'))) {
                throw Error.argument('state', =
Sys.Res.stateMustBeStringDictionary);
            }
        }
        this._ensureHistory();
        var initialState =3D this._state;
        for (var key in state) {
            var value =3D state[key];
            if (value =3D=3D=3D null) {
                if (typeof(initialState[key]) !=3D=3D 'undefined') {
                    delete initialState[key];
                }
            }
            else {
                initialState[key] =3D value;
            }
        }
        var entry =3D this._serializeState(initialState);
        this._historyPointIsNew =3D true;
        this._setState(entry, title);
        this._raiseNavigate();
    }
    function Sys$_Application$beginCreateComponents() {
        /// <summary locid=3D"M:J#Sys.Application.beginCreateComponents" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._creatingComponents =3D true;
    }
    function Sys$_Application$dispose() {
        /// <summary locid=3D"M:J#Sys.Application.dispose" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._disposing) {
            this._disposing =3D true;
            if (this._timerCookie) {
                window.clearTimeout(this._timerCookie);
                delete this._timerCookie;
            }
            if (this._endRequestHandler) {
                =
Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._end=
RequestHandler);
                delete this._endRequestHandler;
            }
            if (this._beginRequestHandler) {
                =
Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._b=
eginRequestHandler);
                delete this._beginRequestHandler;
            }
            if (window.pageUnload) {
                window.pageUnload(this, Sys.EventArgs.Empty);
            }
            var unloadHandler =3D =
this.get_events().getHandler("unload");
            if (unloadHandler) {
                unloadHandler(this, Sys.EventArgs.Empty);
            }
            var disposableObjects =3D =
Array.clone(this._disposableObjects);
            for (var i =3D 0, l =3D disposableObjects.length; i < l; =
i++) {
                disposableObjects[i].dispose();
            }
            Array.clear(this._disposableObjects);
            Sys.UI.DomEvent.removeHandler(window, "unload", =
this._unloadHandlerDelegate);
            if(this._loadHandlerDelegate) {
                Sys.UI.DomEvent.removeHandler(window, "load", =
this._loadHandlerDelegate);
                this._loadHandlerDelegate =3D null;
            }
            var sl =3D Sys._ScriptLoader.getInstance();
            if(sl) {
                sl.dispose();
            }
            Sys._Application.callBaseMethod(this, 'dispose');
        }
    }
    function Sys$_Application$endCreateComponents() {
        /// <summary locid=3D"M:J#Sys.Application.endCreateComponents" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var components =3D this._secondPassComponents;
        for (var i =3D 0, l =3D components.length; i < l; i++) {
            var component =3D components[i].component;
            Sys$Component$_setReferences(component, =
components[i].references);
            component.endUpdate();
        }
        this._secondPassComponents =3D [];
        this._creatingComponents =3D false;
    }
    function Sys$_Application$findComponent(id, parent) {
        /// <summary locid=3D"M:J#Sys.Application.findComponent" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <param name=3D"parent" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <returns type=3D"Sys.Component" =
mayBeNull=3D"true"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "parent", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        return (parent ?
            ((Sys.IContainer.isInstanceOfType(parent)) ?
                parent.findComponent(id) :
                parent[id] || null) :
            Sys.Application._components[id] || null);
    }
    function Sys$_Application$getComponents() {
        /// <summary locid=3D"M:J#Sys.Application.getComponents" />
        /// <returns type=3D"Array" =
elementType=3D"Sys.Component"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var res =3D [];
        var components =3D this._components;
        for (var name in components) {
            res[res.length] =3D components[name];
        }
        return res;
    }
    function Sys$_Application$initialize() {
        /// <summary locid=3D"M:J#Sys.Application.initialize" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if(!this._initialized && !this._initializing) {
            this._initializing =3D true;
            window.setTimeout(Function.createDelegate(this, =
this._doInitialize), 0);
        }
    }
    function Sys$_Application$notifyScriptLoaded() {
        /// <summary locid=3D"M:J#Sys.Application.notifyScriptLoaded" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var sl =3D Sys._ScriptLoader.getInstance();
        if(sl) {
            sl.notifyScriptLoaded();
        }
    }
    function Sys$_Application$registerDisposableObject(object) {
        /// <summary =
locid=3D"M:J#Sys.Application.registerDisposableObject" />
        /// <param name=3D"object" type=3D"Sys.IDisposable"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", type: Sys.IDisposable}
        ]);
        if (e) throw e;
        if (!this._disposing) {
            this._disposableObjects[this._disposableObjects.length] =3D =
object;
        }
    }
    function Sys$_Application$raiseLoad() {
        /// <summary locid=3D"M:J#Sys.Application.raiseLoad" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var h =3D this.get_events().getHandler("load");
        var args =3D new =
Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents), =
!this._initializing);
        if (h) {
            h(this, args);
        }
        if (window.pageLoad) {
            window.pageLoad(this, args);
        }
        this._createdComponents =3D [];
    }
    function Sys$_Application$removeComponent(component) {
        /// <summary locid=3D"M:J#Sys.Application.removeComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        var id =3D component.get_id();
        if (id) delete this._components[id];
    }
    function Sys$_Application$setServerId(clientId, uniqueId) {
        /// <summary locid=3D"M:J#Sys.Application.setServerId" />
        /// <param name=3D"clientId" type=3D"String"></param>
        /// <param name=3D"uniqueId" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "clientId", type: String},
            {name: "uniqueId", type: String}
        ]);
        if (e) throw e;
        this._clientId =3D clientId;
        this._uniqueId =3D uniqueId;
    }
    function Sys$_Application$setServerState(value) {
        /// <summary locid=3D"M:J#Sys.Application.setServerState" />
        /// <param name=3D"value" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "value", type: String}
        ]);
        if (e) throw e;
        this._ensureHistory();
        this._state.__s =3D value;
        this._updateHiddenField(value);
    }
    function Sys$_Application$unregisterDisposableObject(object) {
        /// <summary =
locid=3D"M:J#Sys.Application.unregisterDisposableObject" />
        /// <param name=3D"object" type=3D"Sys.IDisposable"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", type: Sys.IDisposable}
        ]);
        if (e) throw e;
        if (!this._disposing) {
            Array.remove(this._disposableObjects, object);
        }
    }
    function Sys$_Application$_addComponentToSecondPass(component, =
references) {
        this._secondPassComponents[this._secondPassComponents.length] =
=3D {component: component, references: references};
    }
    function Sys$_Application$_deserializeState(entry, skipDecodeUri) {
        var result =3D {};
        entry =3D entry || '';
        var serverSeparator =3D entry.indexOf('&&');
        if ((serverSeparator !=3D=3D -1) && (serverSeparator + 2 < =
entry.length)) {
            result.__s =3D entry.substr(serverSeparator + 2);
            entry =3D entry.substr(0, serverSeparator);
        }
        var tokens =3D entry.split('&');
        for (var i =3D 0, l =3D tokens.length; i < l; i++) {
            var token =3D tokens[i];
            var equal =3D token.indexOf('=3D');
            if ((equal !=3D=3D -1) && (equal + 1 < token.length)) {
                var name =3D token.substr(0, equal);
                var value =3D token.substr(equal + 1);
                result[name] =3D skipDecodeUri ? value : =
decodeURIComponent(value);
            }
        }
        return result;
    }
    function Sys$_Application$_doInitialize() {
        Sys._Application.callBaseMethod(this, 'initialize');
       =20
        var handler =3D this.get_events().getHandler("init");
        if (handler) {
            this.beginCreateComponents();
            handler(this, Sys.EventArgs.Empty);
            this.endCreateComponents();
        }
        if (Sys.WebForms) {
            this._beginRequestHandler =3D Function.createDelegate(this, =
this._onPageRequestManagerBeginRequest);
            =
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(this._begi=
nRequestHandler);
            this._endRequestHandler =3D Function.createDelegate(this, =
this._onPageRequestManagerEndRequest);
            =
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(this._endReq=
uestHandler);
        }
       =20
        var loadedEntry =3D this.get_stateString();
        if (loadedEntry !=3D=3D this._currentEntry) {
            this._navigate(loadedEntry);
        }
=20
        this.raiseLoad();
        this._initializing =3D false;
    }
    function Sys$_Application$_enableHistoryInScriptManager() {
        this._enableHistory =3D true;
        this._historyEnabledInScriptManager =3D true;
    }
    function Sys$_Application$_ensureHistory() {
        if (!this._historyInitialized && this._enableHistory) {
            if ((Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) && (Sys.Browser.documentMode < 8)) {
                this._historyFrame =3D =
document.getElementById('__historyFrame');
                if (!this._historyFrame) throw =
Error.invalidOperation(Sys.Res.historyMissingFrame);
                this._ignoreIFrame =3D true;
            }
            if (this._isSafari2()) {
                var historyElement =3D =
document.getElementById('__history');
                if (!historyElement) throw =
Error.invalidOperation(Sys.Res.historyMissingHiddenInput);
                this._setHistory([window.location.hash]);
                this._historyInitialLength =3D window.history.length;
            }
           =20
            this._timerHandler =3D Function.createDelegate(this, =
this._onIdle);
            this._timerCookie =3D window.setTimeout(this._timerHandler, =
100);
           =20
            try {
                this._initialState =3D =
this._deserializeState(this.get_stateString());
            } catch(e) {}
           =20
            this._historyInitialized =3D true;
        }
    }
    function Sys$_Application$_getHistory() {
        var historyElement =3D document.getElementById('__history');
        if (!historyElement) return '';
        var v =3D historyElement.value;
        return v ? Sys.Serialization.JavaScriptSerializer.deserialize(v, =
true) : '';
    }
    function Sys$_Application$_isSafari2() {
        return (Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) &&
            (Sys.Browser.version <=3D 419.3);
    }
    function Sys$_Application$_loadHandler() {
        if(this._loadHandlerDelegate) {
            Sys.UI.DomEvent.removeHandler(window, "load", =
this._loadHandlerDelegate);
            this._loadHandlerDelegate =3D null;
        }
        this.initialize();
    }
    function Sys$_Application$_navigate(entry) {
        this._ensureHistory();
        var state =3D this._deserializeState(entry);
       =20
        if (this._uniqueId) {
            var oldServerEntry =3D this._state.__s || '';
            var newServerEntry =3D state.__s || '';
            if (newServerEntry !=3D=3D oldServerEntry) {
                this._updateHiddenField(newServerEntry);
                __doPostBack(this._uniqueId, newServerEntry);
                this._state =3D state;
                return;
            }
        }
        this._setState(entry);
        this._state =3D state;
        this._raiseNavigate();
    }
    function Sys$_Application$_onIdle() {
        delete this._timerCookie;
       =20
        var entry =3D this.get_stateString();
        if (entry !=3D=3D this._currentEntry) {
            if (!this._ignoreTimer) {
                this._historyPointIsNew =3D false;
                this._navigate(entry);
                this._historyLength =3D window.history.length;
            }
        }
        else {
            this._ignoreTimer =3D false;
        }
        this._timerCookie =3D window.setTimeout(this._timerHandler, =
100);
    }
    function Sys$_Application$_onIFrameLoad(entry) {
        this._ensureHistory();
        if (!this._ignoreIFrame) {
            this._historyPointIsNew =3D false;
            this._navigate(entry);
        }
        this._ignoreIFrame =3D false;
    }
    function Sys$_Application$_onPageRequestManagerBeginRequest(sender, =
args) {
        this._ignoreTimer =3D true;
    }
    function Sys$_Application$_onPageRequestManagerEndRequest(sender, =
args) {
        var dataItem =3D args.get_dataItems()[this._clientId];
        var eventTarget =3D document.getElementById("__EVENTTARGET");
        if (eventTarget && eventTarget.value =3D=3D=3D this._uniqueId) {
            eventTarget.value =3D '';
        }
        if (typeof(dataItem) !=3D=3D 'undefined') {
            this.setServerState(dataItem);
            this._historyPointIsNew =3D true;
        }
        else {
            this._ignoreTimer =3D false;
        }
        var entry =3D this._serializeState(this._state);
        if (entry !=3D=3D this._currentEntry) {
            this._ignoreTimer =3D true;
            this._setState(entry);
            this._raiseNavigate();
        }
    }
    function Sys$_Application$_raiseNavigate() {
        var h =3D this.get_events().getHandler("navigate");
        var stateClone =3D {};
        for (var key in this._state) {
            if (key !=3D=3D '__s') {
                stateClone[key] =3D this._state[key];
            }
        }
        var args =3D new Sys.HistoryEventArgs(stateClone);
        if (h) {
            h(this, args);
        }
    }
    function Sys$_Application$_serializeState(state) {
        var serialized =3D [];
        for (var key in state) {
            var value =3D state[key];
            if (key =3D=3D=3D '__s') {
                var serverState =3D value;
            }
            else {
                if (key.indexOf('=3D') !=3D=3D -1) throw =
Error.argument('state', Sys.Res.stateFieldNameInvalid);
                serialized[serialized.length] =3D key + '=3D' + =
encodeURIComponent(value);
            }
        }
        return serialized.join('&') + (serverState ? '&&' + serverState =
: '');
    }
    function Sys$_Application$_setHistory(historyArray) {
        var historyElement =3D document.getElementById('__history');
        if (historyElement) {
            historyElement.value =3D =
Sys.Serialization.JavaScriptSerializer.serialize(historyArray);
        }
    }
    function Sys$_Application$_setState(entry, title) {
        entry =3D entry || '';
        if (entry !=3D=3D this._currentEntry) {
            if (window.theForm) {
                var action =3D window.theForm.action;
                var hashIndex =3D action.indexOf('#');
                window.theForm.action =3D ((hashIndex !=3D=3D -1) ? =
action.substring(0, hashIndex) : action) + '#' + entry;
            }
           =20
            if (this._historyFrame && this._historyPointIsNew) {
                this._ignoreIFrame =3D true;
                this._historyPointIsNew =3D false;
                var frameDoc =3D =
this._historyFrame.contentWindow.document;
                frameDoc.open("javascript:'<html></html>'");
                frameDoc.write("<html><head><title>" + (title || =
document.title) +
                    "</title><scri" + "pt =
type=3D\"text/javascript\">parent.Sys.Application._onIFrameLoad('" +=20
                    entry + "');</scri" + =
"pt></head><body></body></html>");
                frameDoc.close();
            }
            this._ignoreTimer =3D false;
            var currentHash =3D this.get_stateString();
            this._currentEntry =3D entry;
            if (entry !=3D=3D currentHash) {
                var loc =3D document.location;
                if (loc.href.length - loc.hash.length + entry.length > =
1024) {
                    throw =
Error.invalidOperation(Sys.Res.urlMustBeLessThan1024chars);
                }
                if (this._isSafari2()) {
                    var history =3D this._getHistory();
                    history[window.history.length - =
this._historyInitialLength + 1] =3D entry;
                    this._setHistory(history);
                    this._historyLength =3D window.history.length + 1;
                    var form =3D document.createElement('form');
                    form.method =3D 'get';
                    form.action =3D '#' + entry;
                    document.appendChild(form);
                    form.submit();
                    document.removeChild(form);
                }
                else {
                    window.location.hash =3D entry;
                }
                if ((typeof(title) !=3D=3D 'undefined') && (title =
!=3D=3D null)) {
                    document.title =3D title;
                }
            }
        }
    }
    function Sys$_Application$_unloadHandler(event) {
        this.dispose();
    }
    function Sys$_Application$_updateHiddenField(value) {
        if (this._clientId) {
            var serverStateField =3D =
document.getElementById(this._clientId);
            if (serverStateField) {
                serverStateField.value =3D value;
            }
        }
    }
Sys._Application.prototype =3D {
    _creatingComponents: false,
    _disposing: false,
    get_isCreatingComponents: Sys$_Application$get_isCreatingComponents,
    get_stateString: Sys$_Application$get_stateString,
    get_enableHistory: Sys$_Application$get_enableHistory,
    set_enableHistory: Sys$_Application$set_enableHistory,
    add_init: Sys$_Application$add_init,
    remove_init: Sys$_Application$remove_init,
    add_load: Sys$_Application$add_load,
    remove_load: Sys$_Application$remove_load,
    add_navigate: Sys$_Application$add_navigate,
    remove_navigate: Sys$_Application$remove_navigate,
    add_unload: Sys$_Application$add_unload,
    remove_unload: Sys$_Application$remove_unload,
    addComponent: Sys$_Application$addComponent,
    addHistoryPoint: Sys$_Application$addHistoryPoint,
    beginCreateComponents: Sys$_Application$beginCreateComponents,
    dispose: Sys$_Application$dispose,
    endCreateComponents: Sys$_Application$endCreateComponents,
    findComponent: Sys$_Application$findComponent,
    getComponents: Sys$_Application$getComponents,
    initialize: Sys$_Application$initialize,
    notifyScriptLoaded: Sys$_Application$notifyScriptLoaded,
    registerDisposableObject: Sys$_Application$registerDisposableObject,
    raiseLoad: Sys$_Application$raiseLoad,
    removeComponent: Sys$_Application$removeComponent,
    setServerId: Sys$_Application$setServerId,
    setServerState: Sys$_Application$setServerState,
    unregisterDisposableObject: =
Sys$_Application$unregisterDisposableObject,
    _addComponentToSecondPass: =
Sys$_Application$_addComponentToSecondPass,
    _deserializeState: Sys$_Application$_deserializeState,
    _doInitialize: Sys$_Application$_doInitialize,
    _enableHistoryInScriptManager: =
Sys$_Application$_enableHistoryInScriptManager,   =20
    _ensureHistory: Sys$_Application$_ensureHistory,
    _getHistory: Sys$_Application$_getHistory,
    _isSafari2: Sys$_Application$_isSafari2,
    _loadHandler: Sys$_Application$_loadHandler,
    _navigate: Sys$_Application$_navigate,
    _onIdle: Sys$_Application$_onIdle,
    _onIFrameLoad: Sys$_Application$_onIFrameLoad,
    _onPageRequestManagerBeginRequest: =
Sys$_Application$_onPageRequestManagerBeginRequest,
    _onPageRequestManagerEndRequest: =
Sys$_Application$_onPageRequestManagerEndRequest,
    _raiseNavigate: Sys$_Application$_raiseNavigate,
    _serializeState: Sys$_Application$_serializeState,
    _setHistory: Sys$_Application$_setHistory,
    _setState: Sys$_Application$_setState,
    _unloadHandler: Sys$_Application$_unloadHandler,
    _updateHiddenField: Sys$_Application$_updateHiddenField
}
Sys._Application.registerClass('Sys._Application', Sys.Component, =
Sys.IContainer);
Sys.Application =3D new Sys._Application();
var $find =3D Sys.Application.findComponent;
Type.registerNamespace('Sys.Net');
=20
Sys.Net.WebRequestExecutor =3D function Sys$Net$WebRequestExecutor() {
    /// <summary locid=3D"M:J#Sys.Net.WebRequestExecutor.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._webRequest =3D null;
    this._resultObject =3D null;
}
    function Sys$Net$WebRequestExecutor$get_webRequest() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.webRequest"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._webRequest;
    }
    function Sys$Net$WebRequestExecutor$_set_webRequest(value) {
        if (this.get_started()) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, =
'set_webRequest'));
        }
        this._webRequest =3D value;
    }
    function Sys$Net$WebRequestExecutor$get_started() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.started"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_responseAvailable() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.responseAvailable"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_aborted() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.aborted"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_responseData() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.responseData"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_statusText() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.statusText"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_xml() {
        /// <value locid=3D"P:J#Sys.Net.WebRequestExecutor.xml"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_object() {
        /// <value =
locid=3D"P:J#Sys.Net.WebRequestExecutor.object"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._resultObject) {
            this._resultObject =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData(=
));
        }
        return this._resultObject;
    }
    function Sys$Net$WebRequestExecutor$executeRequest() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.executeRequest" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$abort() {
        /// <summary locid=3D"M:J#Sys.Net.WebRequestExecutor.abort" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$getResponseHeader(header) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.getResponseHeader" />
        /// <param name=3D"header" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "header", type: String}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$getAllResponseHeaders() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.getAllResponseHeaders" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
Sys.Net.WebRequestExecutor.prototype =3D {
    get_webRequest: Sys$Net$WebRequestExecutor$get_webRequest,
    _set_webRequest: Sys$Net$WebRequestExecutor$_set_webRequest,
    get_started: Sys$Net$WebRequestExecutor$get_started,
    get_responseAvailable: =
Sys$Net$WebRequestExecutor$get_responseAvailable,
    get_timedOut: Sys$Net$WebRequestExecutor$get_timedOut,
    get_aborted: Sys$Net$WebRequestExecutor$get_aborted,
    get_responseData: Sys$Net$WebRequestExecutor$get_responseData,
    get_statusCode: Sys$Net$WebRequestExecutor$get_statusCode,
    get_statusText: Sys$Net$WebRequestExecutor$get_statusText,
    get_xml: Sys$Net$WebRequestExecutor$get_xml,
    get_object: Sys$Net$WebRequestExecutor$get_object,
    executeRequest: Sys$Net$WebRequestExecutor$executeRequest,
    abort: Sys$Net$WebRequestExecutor$abort,
    getResponseHeader: Sys$Net$WebRequestExecutor$getResponseHeader,
    getAllResponseHeaders: =
Sys$Net$WebRequestExecutor$getAllResponseHeaders
}
Sys.Net.WebRequestExecutor.registerClass('Sys.Net.WebRequestExecutor');
=20
Sys.Net.XMLDOM =3D function Sys$Net$XMLDOM(markup) {
    /// <summary locid=3D"M:J#Sys.Net.XMLDOM.#ctor" />
    /// <param name=3D"markup" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "markup", type: String}
    ]);
    if (e) throw e;
    if (!window.DOMParser) {
        var progIDs =3D [ 'Msxml2.DOMDocument.3.0', 'Msxml2.DOMDocument' =
];
        for (var i =3D 0, l =3D progIDs.length; i < l; i++) {
            try {
                var xmlDOM =3D new ActiveXObject(progIDs[i]);
                xmlDOM.async =3D false;
                xmlDOM.loadXML(markup);
                xmlDOM.setProperty('SelectionLanguage', 'XPath');
                return xmlDOM;
            }
            catch (ex) {
            }
        }
    }
    else {
        try {
            var domParser =3D new window.DOMParser();
            return domParser.parseFromString(markup, 'text/xml');
        }
        catch (ex) {
        }
    }
    return null;
}
Sys.Net.XMLHttpExecutor =3D function Sys$Net$XMLHttpExecutor() {
    /// <summary locid=3D"M:J#Sys.Net.XMLHttpExecutor.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Net.XMLHttpExecutor.initializeBase(this);
    var _this =3D this;
    this._xmlHttpRequest =3D null;
    this._webRequest =3D null;
    this._responseAvailable =3D false;
    this._timedOut =3D false;
    this._timer =3D null;
    this._aborted =3D false;
    this._started =3D false;
    this._onReadyStateChange =3D (function () {
       =20
        if (_this._xmlHttpRequest.readyState =3D=3D=3D 4 ) {
            try {
                if (typeof(_this._xmlHttpRequest.status) =3D=3D=3D =
"undefined") {
                    return;
                }
            }
            catch(ex) {
                return;
            }
           =20
            _this._clearTimer();
            _this._responseAvailable =3D true;
            try {
                _this._webRequest.completed(Sys.EventArgs.Empty);
            }
            finally {
                if (_this._xmlHttpRequest !=3D null) {
                    _this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
                    _this._xmlHttpRequest =3D null;
                }
            }
        }
    });
    this._clearTimer =3D (function() {
        if (_this._timer !=3D null) {
            window.clearTimeout(_this._timer);
            _this._timer =3D null;
        }
    });
    this._onTimeout =3D (function() {
        if (!_this._responseAvailable) {
            _this._clearTimer();
            _this._timedOut =3D true;
            _this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
            _this._xmlHttpRequest.abort();
            _this._webRequest.completed(Sys.EventArgs.Empty);
            _this._xmlHttpRequest =3D null;
        }
    });
}
    function Sys$Net$XMLHttpExecutor$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timedOut;
    }
    function Sys$Net$XMLHttpExecutor$get_started() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.started"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._started;
    }
    function Sys$Net$XMLHttpExecutor$get_responseAvailable() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.responseAvailable"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._responseAvailable;
    }
    function Sys$Net$XMLHttpExecutor$get_aborted() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.aborted"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._aborted;
    }
    function Sys$Net$XMLHttpExecutor$executeRequest() {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.executeRequest" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._webRequest =3D this.get_webRequest();
        if (this._started) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, =
'executeRequest'));
        }
        if (this._webRequest =3D=3D=3D null) {
            throw Error.invalidOperation(Sys.Res.nullWebRequest);
        }
        var body =3D this._webRequest.get_body();
        var headers =3D this._webRequest.get_headers();
        this._xmlHttpRequest =3D new XMLHttpRequest();
        this._xmlHttpRequest.onreadystatechange =3D =
this._onReadyStateChange;
        var verb =3D this._webRequest.get_httpVerb();
        this._xmlHttpRequest.open(verb, =
this._webRequest.getResolvedUrl(), true );
        if (headers) {
            for (var header in headers) {
                var val =3D headers[header];
                if (typeof(val) !=3D=3D "function")
                    this._xmlHttpRequest.setRequestHeader(header, val);
            }
        }
        if (verb.toLowerCase() =3D=3D=3D "post") {
            if ((headers =3D=3D=3D null) || !headers['Content-Type']) {
                this._xmlHttpRequest.setRequestHeader('Content-Type', =
'application/x-www-form-urlencoded; charset=3Dutf-8');
            }
            if (!body) {
                body =3D "";
            }
        }
        var timeout =3D this._webRequest.get_timeout();
        if (timeout > 0) {
            this._timer =3D =
window.setTimeout(Function.createDelegate(this, this._onTimeout), =
timeout);
        }
        this._xmlHttpRequest.send(body);
        this._started =3D true;
    }
    function Sys$Net$XMLHttpExecutor$getResponseHeader(header) {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.getResponseHeader" />
        /// <param name=3D"header" type=3D"String"></param>
        /// <returns type=3D"String"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "header", type: String}
        ]);
        if (e) throw e;
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'getResponseHeader'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'getResponseHeader'));
        }
        var result;
        try {
            result =3D this._xmlHttpRequest.getResponseHeader(header);
        } catch (e) {
        }
        if (!result) result =3D "";
        return result;
    }
    function Sys$Net$XMLHttpExecutor$getAllResponseHeaders() {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.getAllResponseHeaders" />
        /// <returns type=3D"String"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'getAllResponseHeaders'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'getAllResponseHeaders'));
        }
        return this._xmlHttpRequest.getAllResponseHeaders();
    }
    function Sys$Net$XMLHttpExecutor$get_responseData() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.responseData"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_responseData'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_responseData'));
        }
        return this._xmlHttpRequest.responseText;
    }
    function Sys$Net$XMLHttpExecutor$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_statusCode'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_statusCode'));
        }
        var result =3D 0;
        try {
            result =3D this._xmlHttpRequest.status;
        }
        catch(ex) {
        }
        return result;
    }
    function Sys$Net$XMLHttpExecutor$get_statusText() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.statusText"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_statusText'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_statusText'));
        }
        return this._xmlHttpRequest.statusText;
    }
    function Sys$Net$XMLHttpExecutor$get_xml() {
        /// <value locid=3D"P:J#Sys.Net.XMLHttpExecutor.xml"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_xml'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_xml'));
        }
        var xml =3D this._xmlHttpRequest.responseXML;
        if (!xml || !xml.documentElement) {
            xml =3D Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);
            if (!xml || !xml.documentElement)
                return null;
        }
        else if (navigator.userAgent.indexOf('MSIE') !=3D=3D -1 && =
typeof(xml.setProperty) !=3D 'undefined') {
            xml.setProperty('SelectionLanguage', 'XPath');
        }
        if (xml.documentElement.namespaceURI =3D=3D=3D =
"http://www.mozilla.org/newlayout/xml/parsererror.xml" &&
            xml.documentElement.tagName =3D=3D=3D "parsererror") {
            return null;
        }
       =20
        if (xml.documentElement.firstChild && =
xml.documentElement.firstChild.tagName =3D=3D=3D "parsererror") {
            return null;
        }
       =20
        return xml;
    }
    function Sys$Net$XMLHttpExecutor$abort() {
        /// <summary locid=3D"M:J#Sys.Net.XMLHttpExecutor.abort" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._started) {
            throw =
Error.invalidOperation(Sys.Res.cannotAbortBeforeStart);
        }
        if (this._aborted || this._responseAvailable || this._timedOut)
            return;
        this._aborted =3D true;
        this._clearTimer();
        if (this._xmlHttpRequest && !this._responseAvailable) {
            this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
            this._xmlHttpRequest.abort();
           =20
            this._xmlHttpRequest =3D null;           =20
            this._webRequest.completed(Sys.EventArgs.Empty);
        }
    }
Sys.Net.XMLHttpExecutor.prototype =3D {
    get_timedOut: Sys$Net$XMLHttpExecutor$get_timedOut,
    get_started: Sys$Net$XMLHttpExecutor$get_started,
    get_responseAvailable: =
Sys$Net$XMLHttpExecutor$get_responseAvailable,
    get_aborted: Sys$Net$XMLHttpExecutor$get_aborted,
    executeRequest: Sys$Net$XMLHttpExecutor$executeRequest,
    getResponseHeader: Sys$Net$XMLHttpExecutor$getResponseHeader,
    getAllResponseHeaders: =
Sys$Net$XMLHttpExecutor$getAllResponseHeaders,
    get_responseData: Sys$Net$XMLHttpExecutor$get_responseData,
    get_statusCode: Sys$Net$XMLHttpExecutor$get_statusCode,
    get_statusText: Sys$Net$XMLHttpExecutor$get_statusText,
    get_xml: Sys$Net$XMLHttpExecutor$get_xml,
    abort: Sys$Net$XMLHttpExecutor$abort
}
Sys.Net.XMLHttpExecutor.registerClass('Sys.Net.XMLHttpExecutor', =
Sys.Net.WebRequestExecutor);
=20
Sys.Net._WebRequestManager =3D function Sys$Net$_WebRequestManager() {
    /// <summary locid=3D"P:J#Sys.Net.WebRequestManager.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._defaultTimeout =3D 0;
    this._defaultExecutorType =3D "Sys.Net.XMLHttpExecutor";
}
    function Sys$Net$_WebRequestManager$add_invokingRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequestManager.invokingRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("invokingRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$remove_invokingRequest(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("invokingRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$add_completedRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequestManager.completedRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("completedRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$remove_completedRequest(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("completedRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$_get_eventHandlerList() {
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$Net$_WebRequestManager$get_defaultTimeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequestManager.defaultTimeout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultTimeout;
    }
    function Sys$Net$_WebRequestManager$set_defaultTimeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) {
            throw Error.argumentOutOfRange("value", value, =
Sys.Res.invalidTimeout);
        }
        this._defaultTimeout =3D value;
    }
    function Sys$Net$_WebRequestManager$get_defaultExecutorType() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestManager.defaultExecutorType"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultExecutorType;
    }
    function Sys$Net$_WebRequestManager$set_defaultExecutorType(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._defaultExecutorType =3D value;
    }
    function Sys$Net$_WebRequestManager$executeRequest(webRequest) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestManager.executeRequest" />
        /// <param name=3D"webRequest" =
type=3D"Sys.Net.WebRequest"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "webRequest", type: Sys.Net.WebRequest}
        ]);
        if (e) throw e;
        var executor =3D webRequest.get_executor();
        if (!executor) {
            var failed =3D false;
            try {
                var executorType =3D eval(this._defaultExecutorType);
                executor =3D new executorType();
            } catch (e) {
                failed =3D true;
            }
            if (failed  || =
!Sys.Net.WebRequestExecutor.isInstanceOfType(executor) || !executor) {
                throw Error.argument("defaultExecutorType", =
String.format(Sys.Res.invalidExecutorType, this._defaultExecutorType));
            }
            webRequest.set_executor(executor);
        }
        if (executor.get_aborted()) {
            return;
        }
        var evArgs =3D new Sys.Net.NetworkRequestEventArgs(webRequest);
        var handler =3D =
this._get_eventHandlerList().getHandler("invokingRequest");
        if (handler) {
            handler(this, evArgs);
        }
        if (!evArgs.get_cancel()) {
            executor.executeRequest();
        }
    }
Sys.Net._WebRequestManager.prototype =3D {
    add_invokingRequest: Sys$Net$_WebRequestManager$add_invokingRequest,
    remove_invokingRequest: =
Sys$Net$_WebRequestManager$remove_invokingRequest,
    add_completedRequest: =
Sys$Net$_WebRequestManager$add_completedRequest,
    remove_completedRequest: =
Sys$Net$_WebRequestManager$remove_completedRequest,
    _get_eventHandlerList: =
Sys$Net$_WebRequestManager$_get_eventHandlerList,
    get_defaultTimeout: Sys$Net$_WebRequestManager$get_defaultTimeout,
    set_defaultTimeout: Sys$Net$_WebRequestManager$set_defaultTimeout,
    get_defaultExecutorType: =
Sys$Net$_WebRequestManager$get_defaultExecutorType,
    set_defaultExecutorType: =
Sys$Net$_WebRequestManager$set_defaultExecutorType,
    executeRequest: Sys$Net$_WebRequestManager$executeRequest
}
Sys.Net._WebRequestManager.registerClass('Sys.Net._WebRequestManager');
Sys.Net.WebRequestManager =3D new Sys.Net._WebRequestManager();
=20
Sys.Net.NetworkRequestEventArgs =3D function =
Sys$Net$NetworkRequestEventArgs(webRequest) {
    /// <summary locid=3D"M:J#Sys.Net.NetworkRequestEventArgs.#ctor" />
    /// <param name=3D"webRequest" type=3D"Sys.Net.WebRequest"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "webRequest", type: Sys.Net.WebRequest}
    ]);
    if (e) throw e;
    Sys.Net.NetworkRequestEventArgs.initializeBase(this);
    this._webRequest =3D webRequest;
}
    function Sys$Net$NetworkRequestEventArgs$get_webRequest() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.Net.NetworkRequestEventArgs.webRequest"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._webRequest;
    }
Sys.Net.NetworkRequestEventArgs.prototype =3D {
    get_webRequest: Sys$Net$NetworkRequestEventArgs$get_webRequest
}
Sys.Net.NetworkRequestEventArgs.registerClass('Sys.Net.NetworkRequestEven=
tArgs', Sys.CancelEventArgs);
=20
Sys.Net.WebRequest =3D function Sys$Net$WebRequest() {
    /// <summary locid=3D"M:J#Sys.Net.WebRequest.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._url =3D "";
    this._headers =3D { };
    this._body =3D null;
    this._userContext =3D null;
    this._httpVerb =3D null;
    this._executor =3D null;
    this._invokeCalled =3D false;
    this._timeout =3D 0;
}
    function Sys$Net$WebRequest$add_completed(handler) {
    /// <summary locid=3D"E:J#Sys.Net.WebRequest.completed" />
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        this._get_eventHandlerList().addHandler("completed", handler);
    }
    function Sys$Net$WebRequest$remove_completed(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        this._get_eventHandlerList().removeHandler("completed", =
handler);
    }
    function Sys$Net$WebRequest$completed(eventArgs) {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.completed" />
        /// <param name=3D"eventArgs" type=3D"Sys.EventArgs"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "eventArgs", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        var handler =3D =
Sys.Net.WebRequestManager._get_eventHandlerList().getHandler("completedRe=
quest");
        if (handler) {
            handler(this._executor, eventArgs);
        }
        handler =3D =
this._get_eventHandlerList().getHandler("completed");
        if (handler) {
            handler(this._executor, eventArgs);
        }
    }
    function Sys$Net$WebRequest$_get_eventHandlerList() {
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$Net$WebRequest$get_url() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequest.url"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._url;
    }
    function Sys$Net$WebRequest$set_url(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._url =3D value;
    }
    function Sys$Net$WebRequest$get_headers() {
        /// <value locid=3D"P:J#Sys.Net.WebRequest.headers"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._headers;
    }
    function Sys$Net$WebRequest$get_httpVerb() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequest.httpVerb"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._httpVerb =3D=3D=3D null) {
            if (this._body =3D=3D=3D null) {
                return "GET";
            }
            return "POST";
        }
        return this._httpVerb;
    }
    function Sys$Net$WebRequest$set_httpVerb(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if (value.length =3D=3D=3D 0) {
            throw Error.argument('value', Sys.Res.invalidHttpVerb);
        }
        this._httpVerb =3D value;
    }
    function Sys$Net$WebRequest$get_body() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebRequest.body"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._body;
    }
    function Sys$Net$WebRequest$set_body(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._body =3D value;
    }
    function Sys$Net$WebRequest$get_userContext() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebRequest.userContext"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._userContext;
    }
    function Sys$Net$WebRequest$set_userContext(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._userContext =3D value;
    }
    function Sys$Net$WebRequest$get_executor() {
        /// <value type=3D"Sys.Net.WebRequestExecutor" =
locid=3D"P:J#Sys.Net.WebRequest.executor"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._executor;
    }
    function Sys$Net$WebRequest$set_executor(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.Net.WebRequestExecutor}]);
        if (e) throw e;
        if (this._executor !=3D=3D null && this._executor.get_started()) =
{
            throw =
Error.invalidOperation(Sys.Res.setExecutorAfterActive);
        }
        this._executor =3D value;
        this._executor._set_webRequest(this);
    }
    function Sys$Net$WebRequest$get_timeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequest.timeout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._timeout =3D=3D=3D 0) {
            return Sys.Net.WebRequestManager.get_defaultTimeout();
        }
        return this._timeout;
    }
    function Sys$Net$WebRequest$set_timeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) {
            throw Error.argumentOutOfRange("value", value, =
Sys.Res.invalidTimeout);
        }
        this._timeout =3D value;
    }
    function Sys$Net$WebRequest$getResolvedUrl() {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.getResolvedUrl" />
        /// <returns type=3D"String"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return Sys.Net.WebRequest._resolveUrl(this._url);
    }
    function Sys$Net$WebRequest$invoke() {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.invoke" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._invokeCalled) {
            throw Error.invalidOperation(Sys.Res.invokeCalledTwice);
        }
        Sys.Net.WebRequestManager.executeRequest(this);
        this._invokeCalled =3D true;
    }
Sys.Net.WebRequest.prototype =3D {
    add_completed: Sys$Net$WebRequest$add_completed,
    remove_completed: Sys$Net$WebRequest$remove_completed,
    completed: Sys$Net$WebRequest$completed,
    _get_eventHandlerList: Sys$Net$WebRequest$_get_eventHandlerList,
    get_url: Sys$Net$WebRequest$get_url,
    set_url: Sys$Net$WebRequest$set_url,
    get_headers: Sys$Net$WebRequest$get_headers,
    get_httpVerb: Sys$Net$WebRequest$get_httpVerb,
    set_httpVerb: Sys$Net$WebRequest$set_httpVerb,
    get_body: Sys$Net$WebRequest$get_body,
    set_body: Sys$Net$WebRequest$set_body,
    get_userContext: Sys$Net$WebRequest$get_userContext,
    set_userContext: Sys$Net$WebRequest$set_userContext,
    get_executor: Sys$Net$WebRequest$get_executor,
    set_executor: Sys$Net$WebRequest$set_executor,
    get_timeout: Sys$Net$WebRequest$get_timeout,
    set_timeout: Sys$Net$WebRequest$set_timeout,
    getResolvedUrl: Sys$Net$WebRequest$getResolvedUrl,
    invoke: Sys$Net$WebRequest$invoke
}
Sys.Net.WebRequest._resolveUrl =3D function =
Sys$Net$WebRequest$_resolveUrl(url, baseUrl) {
    if (url && url.indexOf('://') !=3D=3D -1) {
        return url;
    }
    if (!baseUrl || baseUrl.length =3D=3D=3D 0) {
        var baseElement =3D document.getElementsByTagName('base')[0];
        if (baseElement && baseElement.href && baseElement.href.length > =
0) {
            baseUrl =3D baseElement.href;
        }
        else {
            baseUrl =3D document.URL;
        }
    }
    var qsStart =3D baseUrl.indexOf('?');
    if (qsStart !=3D=3D -1) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    qsStart =3D baseUrl.indexOf('#');
    if (qsStart !=3D=3D -1) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    baseUrl =3D baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1);
    if (!url || url.length =3D=3D=3D 0) {
        return baseUrl;
    }
    if (url.charAt(0) =3D=3D=3D '/') {
        var slashslash =3D baseUrl.indexOf('://');
        if (slashslash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl1);
        }
        var nextSlash =3D baseUrl.indexOf('/', slashslash + 3);
        if (nextSlash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl2);
        }
        return baseUrl.substr(0, nextSlash) + url;
    }
    else {
        var lastSlash =3D baseUrl.lastIndexOf('/');
        if (lastSlash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl3);
        }
        return baseUrl.substr(0, lastSlash+1) + url;
    }
}
Sys.Net.WebRequest._createQueryString =3D function =
Sys$Net$WebRequest$_createQueryString(queryString, encodeMethod) {
    if (!encodeMethod)
        encodeMethod =3D encodeURIComponent;
    var sb =3D new Sys.StringBuilder();
    var i =3D 0;
    for (var arg in queryString) {
        var obj =3D queryString[arg];
        if (typeof(obj) =3D=3D=3D "function") continue;
        var val =3D =
Sys.Serialization.JavaScriptSerializer.serialize(obj);
        if (i !=3D=3D 0) {
            sb.append('&');
        }
        sb.append(arg);
        sb.append('=3D');
        sb.append(encodeMethod(val));
        i++;
    }
    return sb.toString();
}
Sys.Net.WebRequest._createUrl =3D function =
Sys$Net$WebRequest$_createUrl(url, queryString) {
    if (!queryString) {
        return url;
    }
    var qs =3D Sys.Net.WebRequest._createQueryString(queryString);
    if (qs.length > 0) {
        var sep =3D '?';
        if (url && url.indexOf('?') !=3D=3D -1)
            sep =3D '&';
        return url + sep + qs;
    } else {
        return url;
    }
}
Sys.Net.WebRequest.registerClass('Sys.Net.WebRequest');
=20
Sys.Net.WebServiceProxy =3D function Sys$Net$WebServiceProxy() {
}
    function Sys$Net$WebServiceProxy$get_timeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebServiceProxy.timeout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timeout;
    }
    function Sys$Net$WebServiceProxy$set_timeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) { throw Error.argumentOutOfRange('value', value, =
Sys.Res.invalidTimeout); }
        this._timeout =3D value;
    }
    function Sys$Net$WebServiceProxy$get_defaultUserContext() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultUserContext"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._userContext;
    }
    function Sys$Net$WebServiceProxy$set_defaultUserContext(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._userContext =3D value;
    }
    function Sys$Net$WebServiceProxy$get_defaultSucceededCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultSucceededCallback"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._succeeded;
    }
    function Sys$Net$WebServiceProxy$set_defaultSucceededCallback(value) =
{
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._succeeded =3D value;
    }
    function Sys$Net$WebServiceProxy$get_defaultFailedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultFailedCallback"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._failed;
    }
    function Sys$Net$WebServiceProxy$set_defaultFailedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._failed =3D value;
    }
    function Sys$Net$WebServiceProxy$get_path() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceProxy.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path;
    }
    function Sys$Net$WebServiceProxy$set_path(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._path =3D value;
    }
    function Sys$Net$WebServiceProxy$_invoke(servicePath, methodName, =
useGet, params, onSuccess, onFailure, userContext) {
        /// <summary locid=3D"M:J#Sys.Net.WebServiceProxy._invoke" />
        /// <param name=3D"servicePath" type=3D"String"></param>
        /// <param name=3D"methodName" type=3D"String"></param>
        /// <param name=3D"useGet" type=3D"Boolean"></param>
        /// <param name=3D"params"></param>
        /// <param name=3D"onSuccess" type=3D"Function" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"onFailure" type=3D"Function" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"userContext" mayBeNull=3D"true" =
optional=3D"true"></param>
        /// <returns type=3D"Sys.Net.WebRequest"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "servicePath", type: String},
            {name: "methodName", type: String},
            {name: "useGet", type: Boolean},
            {name: "params"},
            {name: "onSuccess", type: Function, mayBeNull: true, =
optional: true},
            {name: "onFailure", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        if (onSuccess =3D=3D=3D null || typeof onSuccess =3D=3D=3D =
'undefined') onSuccess =3D this.get_defaultSucceededCallback();
        if (onFailure =3D=3D=3D null || typeof onFailure =3D=3D=3D =
'undefined') onFailure =3D this.get_defaultFailedCallback();
        if (userContext =3D=3D=3D null || typeof userContext =3D=3D=3D =
'undefined') userContext =3D this.get_defaultUserContext();
       =20
        return Sys.Net.WebServiceProxy.invoke(servicePath, methodName, =
useGet, params, onSuccess, onFailure, userContext, this.get_timeout());
    }
Sys.Net.WebServiceProxy.prototype =3D {
    get_timeout: Sys$Net$WebServiceProxy$get_timeout,
    set_timeout: Sys$Net$WebServiceProxy$set_timeout,
    get_defaultUserContext: =
Sys$Net$WebServiceProxy$get_defaultUserContext,
    set_defaultUserContext: =
Sys$Net$WebServiceProxy$set_defaultUserContext,
    get_defaultSucceededCallback: =
Sys$Net$WebServiceProxy$get_defaultSucceededCallback,
    set_defaultSucceededCallback: =
Sys$Net$WebServiceProxy$set_defaultSucceededCallback,
    get_defaultFailedCallback: =
Sys$Net$WebServiceProxy$get_defaultFailedCallback,
    set_defaultFailedCallback: =
Sys$Net$WebServiceProxy$set_defaultFailedCallback,
    get_path: Sys$Net$WebServiceProxy$get_path,
    set_path: Sys$Net$WebServiceProxy$set_path,
    _invoke: Sys$Net$WebServiceProxy$_invoke
}
Sys.Net.WebServiceProxy.registerClass('Sys.Net.WebServiceProxy');
Sys.Net.WebServiceProxy.invoke =3D function =
Sys$Net$WebServiceProxy$invoke(servicePath, methodName, useGet, params, =
onSuccess, onFailure, userContext, timeout) {
    /// <summary locid=3D"M:J#Sys.Net.WebServiceProxy.invoke" />
    /// <param name=3D"servicePath" type=3D"String"></param>
    /// <param name=3D"methodName" type=3D"String"></param>
    /// <param name=3D"useGet" type=3D"Boolean" =
optional=3D"true"></param>
    /// <param name=3D"params" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"onSuccess" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"onFailure" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"userContext" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"timeout" type=3D"Number" =
optional=3D"true"></param>
    /// <returns type=3D"Sys.Net.WebRequest"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "servicePath", type: String},
        {name: "methodName", type: String},
        {name: "useGet", type: Boolean, optional: true},
        {name: "params", mayBeNull: true, optional: true},
        {name: "onSuccess", type: Function, mayBeNull: true, optional: =
true},
        {name: "onFailure", type: Function, mayBeNull: true, optional: =
true},
        {name: "userContext", mayBeNull: true, optional: true},
        {name: "timeout", type: Number, optional: true}
    ]);
    if (e) throw e;
    var request =3D new Sys.Net.WebRequest();
    request.get_headers()['Content-Type'] =3D 'application/json; =
charset=3Dutf-8';
    if (!params) params =3D {};
    var urlParams =3D params;
    if (!useGet || !urlParams) urlParams =3D {};
    =
request.set_url(Sys.Net.WebRequest._createUrl(servicePath+"/"+encodeURICo=
mponent(methodName), urlParams));
    var body =3D null;
    if (!useGet) {
        body =3D =
Sys.Serialization.JavaScriptSerializer.serialize(params);
        if (body =3D=3D=3D "{}") body =3D "";
    }
    request.set_body(body);
    request.add_completed(onComplete);
    if (timeout && timeout > 0) request.set_timeout(timeout);
    request.invoke();
    function onComplete(response, eventArgs) {
        if (response.get_responseAvailable()) {
            var statusCode =3D response.get_statusCode();
            var result =3D null;
          =20
            try {
                var contentType =3D =
response.getResponseHeader("Content-Type");
                if (contentType.startsWith("application/json")) {
                    result =3D response.get_object();
                }
                else if (contentType.startsWith("text/xml")) {
                    result =3D response.get_xml();
                }
                else {
                    result =3D response.get_responseData();
                }
            } catch (ex) {
            }
            var error =3D response.getResponseHeader("jsonerror");
            var errorObj =3D (error =3D=3D=3D "true");
            if (errorObj) {
                if (result) {
                    result =3D new Sys.Net.WebServiceError(false, =
result.Message, result.StackTrace, result.ExceptionType);
                }
            }
            else if (contentType.startsWith("application/json")) {
                if (!result || typeof(result.d) =3D=3D=3D "undefined") {
                    throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceInvalidJsonWrapper, methodName));
                }
                result =3D result.d;
            }
            if (((statusCode < 200) || (statusCode >=3D 300)) || =
errorObj) {
                if (onFailure) {
                    if (!result || !errorObj) {
                        result =3D new Sys.Net.WebServiceError(false , =
String.format(Sys.Res.webServiceFailedNoMsg, methodName), "", "");
                    }
                    result._statusCode =3D statusCode;
                    onFailure(result, userContext, methodName);
                }
                else {
                    var error;
                    if (result && errorObj) {
                        error =3D result.get_exceptionType() + "-- " + =
result.get_message();
                    }
                    else {
                        error =3D response.get_responseData();
                    }
                    throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceFailed, methodName, error));
                }
            }
            else if (onSuccess) {
                onSuccess(result, userContext, methodName);
            }
        }
        else {
            var msg;
            if (response.get_timedOut()) {
                msg =3D String.format(Sys.Res.webServiceTimedOut, =
methodName);
            }
            else {
                msg =3D String.format(Sys.Res.webServiceFailedNoMsg, =
methodName)
            }
            if (onFailure) {
                onFailure(new =
Sys.Net.WebServiceError(response.get_timedOut(), msg, "", ""), =
userContext, methodName);
            }
            else {
                throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, msg);
            }
        }
    }
    return request;
}
Sys.Net.WebServiceProxy._createFailedError =3D function =
Sys$Net$WebServiceProxy$_createFailedError(methodName, errorMessage) {
    var displayMessage =3D "Sys.Net.WebServiceFailedException: " + =
errorMessage;
    var e =3D Error.create(displayMessage, { 'name': =
'Sys.Net.WebServiceFailedException', 'methodName': methodName });
    e.popStackFrame();
    return e;
}
Sys.Net.WebServiceProxy._defaultFailedCallback =3D function =
Sys$Net$WebServiceProxy$_defaultFailedCallback(err, methodName) {
    var error =3D err.get_exceptionType() + "-- " + err.get_message();
    throw Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceFailed, methodName, error));
}
Sys.Net.WebServiceProxy._generateTypedConstructor =3D function =
Sys$Net$WebServiceProxy$_generateTypedConstructor(type) {
    return function(properties) {
        if (properties) {
            for (var name in properties) {
                this[name] =3D properties[name];
            }
        }
        this.__type =3D type;
    }
}
=20
Sys.Net.WebServiceError =3D function Sys$Net$WebServiceError(timedOut, =
message, stackTrace, exceptionType) {
    /// <summary locid=3D"M:J#Sys.Net.WebServiceError.#ctor" />
    /// <param name=3D"timedOut" type=3D"Boolean"></param>
    /// <param name=3D"message" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <param name=3D"stackTrace" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <param name=3D"exceptionType" type=3D"String" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "timedOut", type: Boolean},
        {name: "message", type: String, mayBeNull: true},
        {name: "stackTrace", type: String, mayBeNull: true},
        {name: "exceptionType", type: String, mayBeNull: true}
    ]);
    if (e) throw e;
    this._timedOut =3D timedOut;
    this._message =3D message;
    this._stackTrace =3D stackTrace;
    this._exceptionType =3D exceptionType;
    this._statusCode =3D -1;
}
    function Sys$Net$WebServiceError$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebServiceError.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timedOut;
    }
    function Sys$Net$WebServiceError$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebServiceError.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._statusCode;
    }
    function Sys$Net$WebServiceError$get_message() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.message"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._message;
    }
    function Sys$Net$WebServiceError$get_stackTrace() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.stackTrace"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._stackTrace;
    }
    function Sys$Net$WebServiceError$get_exceptionType() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.exceptionType"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._exceptionType;
    }
Sys.Net.WebServiceError.prototype =3D {
    get_timedOut: Sys$Net$WebServiceError$get_timedOut,
    get_statusCode: Sys$Net$WebServiceError$get_statusCode,
    get_message: Sys$Net$WebServiceError$get_message,
    get_stackTrace: Sys$Net$WebServiceError$get_stackTrace,
    get_exceptionType: Sys$Net$WebServiceError$get_exceptionType
}
Sys.Net.WebServiceError.registerClass('Sys.Net.WebServiceError');
Type.registerNamespace('Sys.Services');
Sys.Services._ProfileService =3D function Sys$Services$_ProfileService() =
{
    /// <summary locid=3D"M:J#Sys.Net.ProfileService.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Services._ProfileService.initializeBase(this);
    this.properties =3D {};
}
Sys.Services._ProfileService.DefaultWebServicePath =3D '';
    function =
Sys$Services$_ProfileService$get_defaultLoadCompletedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.ProfileService.defaultLoadCompletedCallback"></=
value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLoadCompletedCallback;
    }
    function =
Sys$Services$_ProfileService$set_defaultLoadCompletedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLoadCompletedCallback =3D value;
    }
    function =
Sys$Services$_ProfileService$get_defaultSaveCompletedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.ProfileService.defaultSaveCompletedCallback"></=
value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultSaveCompletedCallback;
    }
    function =
Sys$Services$_ProfileService$set_defaultSaveCompletedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultSaveCompletedCallback =3D value;
    }
    function Sys$Services$_ProfileService$get_path() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.ProfileService.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || '';
    }
    function Sys$Services$_ProfileService$load(propertyNames, =
loadCompletedCallback, failedCallback, userContext) {
        /// <summary locid=3D"M:J#Sys.Services.ProfileService.load" />
        /// <param name=3D"propertyNames" type=3D"Array" =
elementType=3D"String" optional=3D"true" elementMayBeNull=3D"false" =
mayBeNull=3D"true"></param>
        /// <param name=3D"loadCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyNames", type: Array, mayBeNull: true, =
optional: true, elementType: String},
            {name: "loadCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        var parameters;
        var methodName;
        if (!propertyNames) {
            methodName =3D "GetAllPropertiesForCurrentUser";
            parameters =3D { authenticatedUserOnly: false };
        }
        else {
            methodName =3D "GetPropertiesForCurrentUser";
            parameters =3D { properties: =
this._clonePropertyNames(propertyNames), authenticatedUserOnly: false };
        }
        this._invoke(this._get_path(),
                                        methodName,
                                        false,
                                        parameters,
                                        Function.createDelegate(this, =
this._onLoadComplete),
                                        Function.createDelegate(this, =
this._onLoadFailed),
                                        [loadCompletedCallback, =
failedCallback, userContext]);
    }
    function Sys$Services$_ProfileService$save(propertyNames, =
saveCompletedCallback, failedCallback, userContext) {
        /// <summary locid=3D"M:J#Sys.Services.ProfileService.save" />
        /// <param name=3D"propertyNames" type=3D"Array" =
elementType=3D"String" optional=3D"true" elementMayBeNull=3D"false" =
mayBeNull=3D"true"></param>
        /// <param name=3D"saveCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyNames", type: Array, mayBeNull: true, =
optional: true, elementType: String},
            {name: "saveCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        var flattenedProperties =3D =
this._flattenProperties(propertyNames, this.properties);
        this._invoke(this._get_path(),
                                        "SetPropertiesForCurrentUser",
                                        false,
                                        { values: =
flattenedProperties.value, authenticatedUserOnly: false },
                                        Function.createDelegate(this, =
this._onSaveComplete),
                                        Function.createDelegate(this, =
this._onSaveFailed),
                                        [saveCompletedCallback, =
failedCallback, userContext, flattenedProperties.count]);
    }
    function Sys$Services$_ProfileService$_clonePropertyNames(arr) {
        var nodups =3D [];
        var seen =3D {};
        for (var i=3D0; i < arr.length; i++) {
            var prop =3D arr[i];
            if(!seen[prop]) { Array.add(nodups, prop); =
seen[prop]=3Dtrue; };
        }
        return nodups;
    }
    function =
Sys$Services$_ProfileService$_flattenProperties(propertyNames, =
properties, groupName) {
        var flattenedProperties =3D {};
        var val;
        var key;
        var count =3D 0;
        if (propertyNames && propertyNames.length =3D=3D=3D 0) {
            return { value: flattenedProperties, count: 0 };
        }
        for (var property in properties) {
            val =3D properties[property];
            key =3D groupName ? groupName + "." + property : property;
            if(Sys.Services.ProfileGroup.isInstanceOfType(val)) {
                var obj =3D this._flattenProperties(propertyNames, val, =
key);
                var groupProperties =3D obj.value;
                count +=3D obj.count;=20
                for(var subKey in groupProperties) {
                    var subVal =3D groupProperties[subKey];
                    flattenedProperties[subKey] =3D subVal;
                }
            }
            else {
                if(!propertyNames || Array.indexOf(propertyNames, key) =
!=3D=3D -1) {
                    flattenedProperties[key] =3D val;
                    count++;=20
                }
            }
        }
        return { value: flattenedProperties, count: count };
    }
    function Sys$Services$_ProfileService$_get_path() {
        var path =3D this.get_path();
        if (!path.length) {
            path =3D Sys.Services._ProfileService.DefaultWebServicePath;
        }
        if (!path || !path.length) {
            throw Error.invalidOperation(Sys.Res.servicePathNotSet);
        }
        return path;
    }
    function Sys$Services$_ProfileService$_onLoadComplete(result, =
context, methodName) {
        if (typeof(result) !=3D=3D "object") {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Object"));
        }
        var unflattened =3D this._unflattenProperties(result);
        for (var name in unflattened) {
            this.properties[name] =3D unflattened[name];
        }
       =20
        var callback =3D context[0] || =
this.get_defaultLoadCompletedCallback() || =
this.get_defaultSucceededCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();       =20
            callback(result.length, userContext, =
"Sys.Services.ProfileService.load");
        }
    }
    function Sys$Services$_ProfileService$_onLoadFailed(err, context, =
methodName) {
        var callback =3D context[1] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();       =20
            callback(err, userContext, =
"Sys.Services.ProfileService.load");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function Sys$Services$_ProfileService$_onSaveComplete(result, =
context, methodName) {
        var count =3D context[3];
        if (result !=3D=3D null) {=20
            if (result instanceof Array) {
                count -=3D result.length;
            }
            else if (typeof(result) =3D=3D=3D 'number') {
                count =3D result;
            }
            else {
                throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Array"));
            }
        }
       =20
        var callback =3D context[0] || =
this.get_defaultSaveCompletedCallback() || =
this.get_defaultSucceededCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            callback(count, userContext, =
"Sys.Services.ProfileService.save");
        }
    }
    function Sys$Services$_ProfileService$_onSaveFailed(err, context, =
methodName) {
        var callback =3D context[1] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            callback(err, userContext, =
"Sys.Services.ProfileService.save");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function =
Sys$Services$_ProfileService$_unflattenProperties(properties) {
        var unflattenedProperties =3D {};
        var dotIndex;
        var val;
        var count =3D 0;
        for (var key in properties) {
            count++;
            val =3D properties[key];
            dotIndex =3D key.indexOf('.');
            if (dotIndex !=3D=3D -1) {
                var groupName =3D key.substr(0, dotIndex);
                key =3D key.substr(dotIndex+1);
                var group =3D unflattenedProperties[groupName];
                if (!group || =
!Sys.Services.ProfileGroup.isInstanceOfType(group)) {
                    group =3D new Sys.Services.ProfileGroup();
                    unflattenedProperties[groupName] =3D group;
                }
                group[key] =3D val;
            }
            else {
                unflattenedProperties[key] =3D val;
            }
        }
        properties.length =3D count;
        return unflattenedProperties;
    }
Sys.Services._ProfileService.prototype =3D {
    _defaultLoadCompletedCallback: null,
    _defaultSaveCompletedCallback: null,
    _path: '',
    _timeout: 0,
    get_defaultLoadCompletedCallback: =
Sys$Services$_ProfileService$get_defaultLoadCompletedCallback,
    set_defaultLoadCompletedCallback: =
Sys$Services$_ProfileService$set_defaultLoadCompletedCallback,
    get_defaultSaveCompletedCallback: =
Sys$Services$_ProfileService$get_defaultSaveCompletedCallback,
    set_defaultSaveCompletedCallback: =
Sys$Services$_ProfileService$set_defaultSaveCompletedCallback,
    get_path: Sys$Services$_ProfileService$get_path,
    load: Sys$Services$_ProfileService$load,
    save: Sys$Services$_ProfileService$save,
    _clonePropertyNames: =
Sys$Services$_ProfileService$_clonePropertyNames,   =20
    _flattenProperties: Sys$Services$_ProfileService$_flattenProperties,
    _get_path: Sys$Services$_ProfileService$_get_path,   =20
    _onLoadComplete: Sys$Services$_ProfileService$_onLoadComplete,
    _onLoadFailed: Sys$Services$_ProfileService$_onLoadFailed,
    _onSaveComplete: Sys$Services$_ProfileService$_onSaveComplete,
    _onSaveFailed: Sys$Services$_ProfileService$_onSaveFailed,
    _unflattenProperties: =
Sys$Services$_ProfileService$_unflattenProperties
}
Sys.Services._ProfileService.registerClass('Sys.Services._ProfileService'=
, Sys.Net.WebServiceProxy);
Sys.Services.ProfileService =3D new Sys.Services._ProfileService();
Sys.Services.ProfileGroup =3D function =
Sys$Services$ProfileGroup(properties) {
    /// <summary locid=3D"M:J#Sys.Services.ProfileGroup.#ctor" />
    /// <param name=3D"properties" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "properties", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if (properties) {
        for (var property in properties) {
            this[property] =3D properties[property];
        }
    }
}
Sys.Services.ProfileGroup.registerClass('Sys.Services.ProfileGroup');
Sys.Services._AuthenticationService =3D function =
Sys$Services$_AuthenticationService() {
    /// <summary locid=3D"M:J#Sys.Services.AuthenticationService.#ctor" =
/>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Services._AuthenticationService.initializeBase(this);
}
Sys.Services._AuthenticationService.DefaultWebServicePath =3D '';
    function =
Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback() =
{
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.AuthenticationService.defaultLoginCompletedCall=
back"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLoginCompletedCallback;
    }
    function =
Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback(val=
ue) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLoginCompletedCallback =3D value;
    }
    function =
Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback() =
{
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.AuthenticationService.defaultLogoutCompletedCal=
lback"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLogoutCompletedCallback;
    }
    function =
Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback(va=
lue) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLogoutCompletedCallback =3D value;
    }
    function Sys$Services$_AuthenticationService$get_isLoggedIn() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Services.AuthenticationService.isLoggedIn"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._authenticated;
    }
    function Sys$Services$_AuthenticationService$get_path() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.AuthenticationService.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || '';
    }
    function Sys$Services$_AuthenticationService$login(username, =
password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, =
failedCallback, userContext) {
        /// <summary =
locid=3D"M:J#Sys.Services.AuthenticationService.login" />
        /// <param name=3D"username" type=3D"String" =
mayBeNull=3D"false"></param>
        /// <param name=3D"password" type=3D"String" =
mayBeNull=3D"true"></param>
        /// <param name=3D"isPersistent" type=3D"Boolean" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"customInfo" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <param name=3D"redirectUrl" type=3D"String" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"loginCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "username", type: String},
            {name: "password", type: String, mayBeNull: true},
            {name: "isPersistent", type: Boolean, mayBeNull: true, =
optional: true},
            {name: "customInfo", type: String, mayBeNull: true, =
optional: true},
            {name: "redirectUrl", type: String, mayBeNull: true, =
optional: true},
            {name: "loginCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._invoke(this._get_path(), "Login", false,
                                        { userName: username, password: =
password, createPersistentCookie: isPersistent },
                                        Function.createDelegate(this, =
this._onLoginComplete),
                                        Function.createDelegate(this, =
this._onLoginFailed),
                                        [username, password, =
isPersistent, customInfo, redirectUrl, loginCompletedCallback, =
failedCallback, userContext]);
    }
    function Sys$Services$_AuthenticationService$logout(redirectUrl, =
logoutCompletedCallback, failedCallback, userContext) {
        /// <summary =
locid=3D"M:J#Sys.Services.AuthenticationService.logout" />
        /// <param name=3D"redirectUrl" type=3D"String" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"logoutCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "redirectUrl", type: String, mayBeNull: true, =
optional: true},
            {name: "logoutCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._invoke(this._get_path(), "Logout", false, {},=20
                                        Function.createDelegate(this, =
this._onLogoutComplete),
                                        Function.createDelegate(this, =
this._onLogoutFailed),
                                        [redirectUrl, =
logoutCompletedCallback, failedCallback, userContext]);
    }
    function Sys$Services$_AuthenticationService$_get_path() {
        var path =3D this.get_path();
        if(!path.length) {
            path =3D =
Sys.Services._AuthenticationService.DefaultWebServicePath;
        }
        if(!path || !path.length) {
            throw Error.invalidOperation(Sys.Res.servicePathNotSet);
        }
        return path;
    }
    function =
Sys$Services$_AuthenticationService$_onLoginComplete(result, context, =
methodName) {
        if(typeof(result) !=3D=3D "boolean") {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Boolean"));
        }
       =20
        var redirectUrl =3D context[4];
        var userContext =3D context[7] || this.get_defaultUserContext();
        var callback =3D context[5] || =
this.get_defaultLoginCompletedCallback() || =
this.get_defaultSucceededCallback();
       =20
        if(result) {
            this._authenticated =3D true;
            if (callback) {
                callback(true, userContext, =
"Sys.Services.AuthenticationService.login");
            }
           =20
            if (typeof(redirectUrl) !=3D=3D "undefined" && redirectUrl =
!=3D=3D null) {
                window.location.href =3D redirectUrl;
            }
        }
        else if (callback) {
            callback(false, userContext, =
"Sys.Services.AuthenticationService.login");
        }
    }
    function Sys$Services$_AuthenticationService$_onLoginFailed(err, =
context, methodName) {
        var callback =3D context[6] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[7] || =
this.get_defaultUserContext();
            callback(err, userContext, =
"Sys.Services.AuthenticationService.login");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function =
Sys$Services$_AuthenticationService$_onLogoutComplete(result, context, =
methodName) {
        if(result !=3D=3D null) {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "null"));
        }
       =20
        var redirectUrl =3D context[0];
        var userContext =3D context[3] || this.get_defaultUserContext();
        var callback =3D context[1] || =
this.get_defaultLogoutCompletedCallback() || =
this.get_defaultSucceededCallback();
        this._authenticated =3D false;
       =20
        if (callback) {
            callback(null, userContext, =
"Sys.Services.AuthenticationService.logout");
        }
       =20
        if(!redirectUrl) {
            window.location.reload();
        }
        else {
            window.location.href =3D redirectUrl;
        }
    }
    function Sys$Services$_AuthenticationService$_onLogoutFailed(err, =
context, methodName) {
        var callback =3D context[2] || this.get_defaultFailedCallback();
        if (callback) {
            callback(err, context[3], =
"Sys.Services.AuthenticationService.logout");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function =
Sys$Services$_AuthenticationService$_setAuthenticated(authenticated) {
        this._authenticated =3D authenticated;
    }
Sys.Services._AuthenticationService.prototype =3D {
    _defaultLoginCompletedCallback: null,
    _defaultLogoutCompletedCallback: null,
    _path: '',
    _timeout: 0,
    _authenticated: false,
    get_defaultLoginCompletedCallback: =
Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback,
    set_defaultLoginCompletedCallback: =
Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback,
    get_defaultLogoutCompletedCallback: =
Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback,
    set_defaultLogoutCompletedCallback: =
Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback,
    get_isLoggedIn: Sys$Services$_AuthenticationService$get_isLoggedIn,
    get_path: Sys$Services$_AuthenticationService$get_path, =20
    login: Sys$Services$_AuthenticationService$login,
    logout: Sys$Services$_AuthenticationService$logout,
    _get_path: Sys$Services$_AuthenticationService$_get_path,
    _onLoginComplete: =
Sys$Services$_AuthenticationService$_onLoginComplete,
    _onLoginFailed: Sys$Services$_AuthenticationService$_onLoginFailed,
    _onLogoutComplete: =
Sys$Services$_AuthenticationService$_onLogoutComplete,
    _onLogoutFailed: =
Sys$Services$_AuthenticationService$_onLogoutFailed,
    _setAuthenticated: =
Sys$Services$_AuthenticationService$_setAuthenticated   =20
}
Sys.Services._AuthenticationService.registerClass('Sys.Services._Authenti=
cationService', Sys.Net.WebServiceProxy);
Sys.Services.AuthenticationService =3D new =
Sys.Services._AuthenticationService();
Sys.Services._RoleService =3D function Sys$Services$_RoleService() {
    /// <summary locid=3D"M:J#Sys.Services.RoleService.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Services._RoleService.initializeBase(this);
    this._roles =3D [];
}
Sys.Services._RoleService.DefaultWebServicePath =3D '';
    function =
Sys$Services$_RoleService$get_defaultLoadCompletedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.RoleService.defaultLoadCompletedCallback"></val=
ue>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLoadCompletedCallback;
    }
    function =
Sys$Services$_RoleService$set_defaultLoadCompletedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLoadCompletedCallback =3D value;
    }
    function Sys$Services$_RoleService$get_path() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.RoleService.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || '';
    }
    function Sys$Services$_RoleService$get_roles() {
        /// <value type=3D"Array" elementType=3D"String" =
mayBeNull=3D"false" =
locid=3D"P:J#Sys.Services.RoleService.roles"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return Array.clone(this._roles);
    }
    function Sys$Services$_RoleService$isUserInRole(role) {
        /// <summary locid=3D"M:J#Sys.Services.RoleService.isUserInRole" =
/>
        /// <param name=3D"role" type=3D"String" =
mayBeNull=3D"false"></param>
        /// <returns type=3D"Boolean"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "role", type: String}
        ]);
        if (e) throw e;
        var v =3D this._get_rolesIndex()[role.trim().toLowerCase()];
        return !!v;
    }
    function Sys$Services$_RoleService$load(loadCompletedCallback, =
failedCallback, userContext) {
        /// <summary locid=3D"M:J#Sys.Services.RoleService.load" />
        /// <param name=3D"loadCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "loadCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        Sys.Net.WebServiceProxy.invoke(
                    this._get_path(),
                    "GetRolesForCurrentUser",
                    false,
                    {} ,
                    Function.createDelegate(this, this._onLoadComplete),
                    Function.createDelegate(this, this._onLoadFailed),
                    [loadCompletedCallback, failedCallback, =
userContext],
                    this.get_timeout());
    }
    function Sys$Services$_RoleService$_get_path() {
        var path =3D this.get_path();
        if(!path || !path.length) {
            path =3D Sys.Services._RoleService.DefaultWebServicePath;
        }
        if(!path || !path.length) {
            throw Error.invalidOperation(Sys.Res.servicePathNotSet);
        }
        return path;
    }
    function Sys$Services$_RoleService$_get_rolesIndex() {
        if (!this._rolesIndex) {
            var index =3D {};
            for(var i=3D0; i < this._roles.length; i++) {
                index[this._roles[i].toLowerCase()] =3D true;
            }
            this._rolesIndex =3D index;
        }
        return this._rolesIndex;
    }
    function Sys$Services$_RoleService$_onLoadComplete(result, context, =
methodName) {
        if(result && !(result instanceof Array)) {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Array"));
        }
        this._roles =3D result;
        this._rolesIndex =3D null;
        var callback =3D context[0] || =
this.get_defaultLoadCompletedCallback() || =
this.get_defaultSucceededCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            var clonedResult =3D Array.clone(result);
            callback(clonedResult, userContext, =
"Sys.Services.RoleService.load");
        }
    }
    function Sys$Services$_RoleService$_onLoadFailed(err, context, =
methodName) {
        var callback =3D context[1] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            callback(err, userContext, "Sys.Services.RoleService.load");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
Sys.Services._RoleService.prototype =3D {
    _defaultLoadCompletedCallback: null,
    _rolesIndex: null,
    _timeout: 0,
    _path: '',
    get_defaultLoadCompletedCallback: =
Sys$Services$_RoleService$get_defaultLoadCompletedCallback,
    set_defaultLoadCompletedCallback: =
Sys$Services$_RoleService$set_defaultLoadCompletedCallback,
    get_path: Sys$Services$_RoleService$get_path,
    get_roles: Sys$Services$_RoleService$get_roles,
    isUserInRole: Sys$Services$_RoleService$isUserInRole,
    load: Sys$Services$_RoleService$load,
    _get_path: Sys$Services$_RoleService$_get_path, =20
    _get_rolesIndex: Sys$Services$_RoleService$_get_rolesIndex,
    _onLoadComplete: Sys$Services$_RoleService$_onLoadComplete,
    _onLoadFailed: Sys$Services$_RoleService$_onLoadFailed
}
Sys.Services._RoleService.registerClass('Sys.Services._RoleService', =
Sys.Net.WebServiceProxy);
Sys.Services.RoleService =3D new Sys.Services._RoleService();
Type.registerNamespace('Sys.Serialization');
Sys.Serialization.JavaScriptSerializer =3D function =
Sys$Serialization$JavaScriptSerializer() {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
Sys.Serialization.JavaScriptSerializer.registerClass('Sys.Serialization.J=
avaScriptSerializer');
Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs =3D [];
Sys.Serialization.JavaScriptSerializer._charsToEscape =3D [];
Sys.Serialization.JavaScriptSerializer._dateRegEx =3D new =
RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4}=
)?\\)\\\\/\\"', 'g');
Sys.Serialization.JavaScriptSerializer._escapeChars =3D {};
Sys.Serialization.JavaScriptSerializer._escapeRegEx =3D new =
RegExp('["\\\\\\x00-\\x1F]', 'i');
Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal =3D new =
RegExp('["\\\\\\x00-\\x1F]', 'g');
Sys.Serialization.JavaScriptSerializer._jsonRegEx =3D new =
RegExp('[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]', 'g');
Sys.Serialization.JavaScriptSerializer._jsonStringRegEx =3D new =
RegExp('"(\\\\.|[^"\\\\])*"', 'g');
Sys.Serialization.JavaScriptSerializer._serverTypeFieldName =3D =
'__type';
Sys.Serialization.JavaScriptSerializer._init =3D function =
Sys$Serialization$JavaScriptSerializer$_init() {
    var replaceChars =3D =
['\\u0000','\\u0001','\\u0002','\\u0003','\\u0004','\\u0005','\\u0006','\=
\u0007',
                        =
'\\b','\\t','\\n','\\u000b','\\f','\\r','\\u000e','\\u000f','\\u0010','\\=
u0011',
                        =
'\\u0012','\\u0013','\\u0014','\\u0015','\\u0016','\\u0017','\\u0018','\\=
u0019',
                        =
'\\u001a','\\u001b','\\u001c','\\u001d','\\u001e','\\u001f'];
    Sys.Serialization.JavaScriptSerializer._charsToEscape[0] =3D '\\';
    Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['\\'] =
=3D new RegExp('\\\\', 'g');
    Sys.Serialization.JavaScriptSerializer._escapeChars['\\'] =3D =
'\\\\';
    Sys.Serialization.JavaScriptSerializer._charsToEscape[1] =3D '"';
    Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['"'] =3D =
new RegExp('"', 'g');
    Sys.Serialization.JavaScriptSerializer._escapeChars['"'] =3D '\\"';
    for (var i =3D 0; i < 32; i++) {
        var c =3D String.fromCharCode(i);
        Sys.Serialization.JavaScriptSerializer._charsToEscape[i+2] =3D =
c;
        Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs[c] =
=3D new RegExp(c, 'g');
        Sys.Serialization.JavaScriptSerializer._escapeChars[c] =3D =
replaceChars[i];
    }
}
Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeBooleanWithBuilder(objec=
t, stringBuilder) {
    stringBuilder.append(object.toString());
}
Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeNumberWithBuilder(object=
, stringBuilder) {
    if (isFinite(object)) {
        stringBuilder.append(String(object));
    }
    else {
        throw =
Error.invalidOperation(Sys.Res.cannotSerializeNonFiniteNumbers);
    }
}
Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeStringWithBuilder(string=
, stringBuilder) {
    stringBuilder.append('"');
    if =
(Sys.Serialization.JavaScriptSerializer._escapeRegEx.test(string)) {
        if (Sys.Serialization.JavaScriptSerializer._charsToEscape.length =
=3D=3D=3D 0) {
            Sys.Serialization.JavaScriptSerializer._init();
        }
        if (string.length < 128) {
            string =3D =
string.replace(Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal,=

                function(x) { return =
Sys.Serialization.JavaScriptSerializer._escapeChars[x]; });
        }
        else {
            for (var i =3D 0; i < 34; i++) {
                var c =3D =
Sys.Serialization.JavaScriptSerializer._charsToEscape[i];
                if (string.indexOf(c) !=3D=3D -1) {
                    if (Sys.Browser.agent =3D=3D=3D Sys.Browser.Opera || =
Sys.Browser.agent =3D=3D=3D Sys.Browser.FireFox) {
                        string =3D =
string.split(c).join(Sys.Serialization.JavaScriptSerializer._escapeChars[=
c]);
                    }
                    else {
                        string =3D =
string.replace(Sys.Serialization.JavaScriptSerializer._charsToEscapeRegEx=
s[c],
                            =
Sys.Serialization.JavaScriptSerializer._escapeChars[c]);
                    }
                }
            }
       }
    }
    stringBuilder.append(string);
    stringBuilder.append('"');
}
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeWithBuilder(object, =
stringBuilder, sort, prevObjects) {
    var i;
    switch (typeof object) {
    case 'object':
        if (object) {
            if (prevObjects){
                for( var j =3D 0; j < prevObjects.length; j++) {
                    if (prevObjects[j] =3D=3D=3D object) {
                        throw =
Error.invalidOperation(Sys.Res.cannotSerializeObjectWithCycle);
                    }
                }
            }
            else {
                prevObjects =3D new Array();
            }
            try {
                Array.add(prevObjects, object);
               =20
                if (Number.isInstanceOfType(object)){
                    =
Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(object=
, stringBuilder);
                }
                else if (Boolean.isInstanceOfType(object)){
                    =
Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(objec=
t, stringBuilder);
                }
                else if (String.isInstanceOfType(object)){
                    =
Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(object=
, stringBuilder);
                }
           =20
                else if (Array.isInstanceOfType(object)) {
                    stringBuilder.append('[');
                  =20
                    for (i =3D 0; i < object.length; ++i) {
                        if (i > 0) {
                            stringBuilder.append(',');
                        }
                        =
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object[i], =
stringBuilder,false,prevObjects);
                    }
                    stringBuilder.append(']');
                }
                else {
                    if (Date.isInstanceOfType(object)) {
                        stringBuilder.append('"\\/Date(');
                        stringBuilder.append(object.getTime());
                        stringBuilder.append(')\\/"');
                        break;
                    }
                    var properties =3D [];
                    var propertyCount =3D 0;
                    for (var name in object) {
                        if (name.startsWith('$')) {
                            continue;
                        }
                        if (name =3D=3D=3D =
Sys.Serialization.JavaScriptSerializer._serverTypeFieldName && =
propertyCount !=3D=3D 0){
                            properties[propertyCount++] =3D =
properties[0];
                            properties[0] =3D name;
                        }
                        else{
                            properties[propertyCount++] =3D name;
                        }
                    }
                    if (sort) properties.sort();
                    stringBuilder.append('{');
                    var needComma =3D false;
                    =20
                    for (i=3D0; i<propertyCount; i++) {
                        var value =3D object[properties[i]];
                        if (typeof value !=3D=3D 'undefined' && typeof =
value !=3D=3D 'function') {
                            if (needComma) {
                                stringBuilder.append(',');
                            }
                            else {
                                needComma =3D true;
                            }
                          =20
                            =
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(properties[i=
], stringBuilder, sort, prevObjects);
                            stringBuilder.append(':');
                            =
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(value, =
stringBuilder, sort, prevObjects);
                         =20
                        }
                    }
                stringBuilder.append('}');
                }
            }
            finally {
                Array.removeAt(prevObjects, prevObjects.length - 1);
            }
        }
        else {
            stringBuilder.append('null');
        }
        break;
    case 'number':
        =
Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(object=
, stringBuilder);
        break;
    case 'string':
        =
Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(object=
, stringBuilder);
        break;
    case 'boolean':
        =
Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(objec=
t, stringBuilder);
        break;
    default:
        stringBuilder.append('null');
        break;
    }
}
Sys.Serialization.JavaScriptSerializer.serialize =3D function =
Sys$Serialization$JavaScriptSerializer$serialize(object) {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.serialize" />
    /// <param name=3D"object" mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "object", mayBeNull: true}
    ]);
    if (e) throw e;
    var stringBuilder =3D new Sys.StringBuilder();
    Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object, =
stringBuilder, false);
    return stringBuilder.toString();
}
Sys.Serialization.JavaScriptSerializer.deserialize =3D function =
Sys$Serialization$JavaScriptSerializer$deserialize(data, secure) {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.deserialize" />
    /// <param name=3D"data" type=3D"String"></param>
    /// <param name=3D"secure" type=3D"Boolean" =
optional=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "data", type: String},
        {name: "secure", type: Boolean, optional: true}
    ]);
    if (e) throw e;
   =20
    if (data.length =3D=3D=3D 0) throw Error.argument('data', =
Sys.Res.cannotDeserializeEmptyString);
    try {   =20
        var exp =3D =
data.replace(Sys.Serialization.JavaScriptSerializer._dateRegEx, "$1new =
Date($2)");
       =20
        if (secure && =
Sys.Serialization.JavaScriptSerializer._jsonRegEx.test(
             =
exp.replace(Sys.Serialization.JavaScriptSerializer._jsonStringRegEx, =
''))) throw null;
        return eval('(' + exp + ')');
    }
    catch (e) {
         throw Error.argument('data', =
Sys.Res.cannotDeserializeInvalidJson);
    }
}
=20
Sys.CultureInfo =3D function Sys$CultureInfo(name, numberFormat, =
dateTimeFormat) {
    /// <summary locid=3D"M:J#Sys.CultureInfo.#ctor" />
    /// <param name=3D"name" type=3D"String"></param>
    /// <param name=3D"numberFormat" type=3D"Object"></param>
    /// <param name=3D"dateTimeFormat" type=3D"Object"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "name", type: String},
        {name: "numberFormat", type: Object},
        {name: "dateTimeFormat", type: Object}
    ]);
    if (e) throw e;
    this.name =3D name;
    this.numberFormat =3D numberFormat;
    this.dateTimeFormat =3D dateTimeFormat;
}
    function Sys$CultureInfo$_getDateTimeFormats() {
        if (! this._dateTimeFormats) {
            var dtf =3D this.dateTimeFormat;
            this._dateTimeFormats =3D
              [ dtf.MonthDayPattern,
                dtf.YearMonthPattern,
                dtf.ShortDatePattern,
                dtf.ShortTimePattern,
                dtf.LongDatePattern,
                dtf.LongTimePattern,
                dtf.FullDateTimePattern,
                dtf.RFC1123Pattern,
                dtf.SortableDateTimePattern,
                dtf.UniversalSortableDateTimePattern ];
        }
        return this._dateTimeFormats;
    }
    function Sys$CultureInfo$_getMonthIndex(value) {
        if (!this._upperMonths) {
            this._upperMonths =3D =
this._toUpperArray(this.dateTimeFormat.MonthNames);
        }
        return Array.indexOf(this._upperMonths, this._toUpper(value));
    }
    function Sys$CultureInfo$_getAbbrMonthIndex(value) {
        if (!this._upperAbbrMonths) {
            this._upperAbbrMonths =3D =
this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
        }
        return Array.indexOf(this._upperAbbrMonths, =
this._toUpper(value));
    }
    function Sys$CultureInfo$_getDayIndex(value) {
        if (!this._upperDays) {
            this._upperDays =3D =
this._toUpperArray(this.dateTimeFormat.DayNames);
        }
        return Array.indexOf(this._upperDays, this._toUpper(value));
    }
    function Sys$CultureInfo$_getAbbrDayIndex(value) {
        if (!this._upperAbbrDays) {
            this._upperAbbrDays =3D =
this._toUpperArray(this.dateTimeFormat.AbbreviatedDayNames);
        }
        return Array.indexOf(this._upperAbbrDays, this._toUpper(value));
    }
    function Sys$CultureInfo$_toUpperArray(arr) {
        var result =3D [];
        for (var i =3D 0, il =3D arr.length; i < il; i++) {
            result[i] =3D this._toUpper(arr[i]);
        }
        return result;
    }
    function Sys$CultureInfo$_toUpper(value) {
        return value.split("\u00A0").join(' ').toUpperCase();
    }
Sys.CultureInfo.prototype =3D {
    _getDateTimeFormats: Sys$CultureInfo$_getDateTimeFormats,
    _getMonthIndex: Sys$CultureInfo$_getMonthIndex,
    _getAbbrMonthIndex: Sys$CultureInfo$_getAbbrMonthIndex,
    _getDayIndex: Sys$CultureInfo$_getDayIndex,
    _getAbbrDayIndex: Sys$CultureInfo$_getAbbrDayIndex,
    _toUpperArray: Sys$CultureInfo$_toUpperArray,
    _toUpper: Sys$CultureInfo$_toUpper
}
Sys.CultureInfo._parse =3D function Sys$CultureInfo$_parse(value) {
    var cultureInfo =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(value);
    return new Sys.CultureInfo(cultureInfo.name, =
cultureInfo.numberFormat, cultureInfo.dateTimeFormat);
}
Sys.CultureInfo.registerClass('Sys.CultureInfo');
Sys.CultureInfo.InvariantCulture =3D =
Sys.CultureInfo._parse('{"name":"","numberFormat":{"CurrencyDecimalDigits=
":2,"CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes"=
:[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparat=
or":",","CurrencySymbol":"\u00A4","NaNSymbol":"NaN","CurrencyNegativePatt=
ern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegat=
ivePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","Nu=
mberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":=
",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","Posi=
tiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","Per=
centGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","Na=
tiveDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution"=
:1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTi=
me":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","Algor=
ithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnl=
y":true},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"Ful=
lDateTimePattern":"dddd, dd MMMM yyyy HH:mm:ss","LongDatePattern":"dddd, =
dd MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM =
dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\':\'mm\':\'ss =
\'GMT\'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","Sort=
ableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSepar=
ator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd =
HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"yyyy =
MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"=
ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda=
y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev=
iatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","=
Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","=
May","June","July","August","September","October","November","December","=
"],"IsReadOnly":true,"NativeCalendarName":"Gregorian =
Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May",=
"Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["Janu=
ary","February","March","April","May","June","July","August","September",=
"October","November","December",""]}}');
if (typeof(__cultureInfo) =3D=3D=3D 'undefined') {
    var __cultureInfo =3D =
'{"name":"en-US","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecim=
alSeparator":".","IsReadOnly":false,"CurrencyGroupSizes":[3],"NumberGroup=
Sizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","Currency=
Symbol":"$","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegative=
Pattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"Negativ=
eInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"=
NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositiveP=
attern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","Percent=
DecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",=
","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","=
2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{=
"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@=
","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarT=
ype":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":false},"DateSeparat=
or":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dd=
dd, MMMM dd, yyyy h:mm:ss tt","LongDatePattern":"dddd, MMMM dd, =
yyyy","LongTimePattern":"h:mm:ss tt","MonthDayPattern":"MMMM =
dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\':\'mm\':\'ss =
\'GMT\'","ShortDatePattern":"M/d/yyyy","ShortTimePattern":"h:mm =
tt","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","=
TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd=
 HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"MMMM, =
yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"=
ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda=
y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev=
iatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","=
Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","=
May","June","July","August","September","October","November","December","=
"],"IsReadOnly":false,"NativeCalendarName":"Gregorian =
Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May",=
"Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["Janu=
ary","February","March","April","May","June","July","August","September",=
"October","November","December",""]}}';
}
Sys.CultureInfo.CurrentCulture =3D =
Sys.CultureInfo._parse(__cultureInfo);
delete __cultureInfo;
=20
Sys.UI.Behavior =3D function Sys$UI$Behavior(element) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.#ctor" />
    /// <param name=3D"element" domElement=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    Sys.UI.Behavior.initializeBase(this);
    this._element =3D element;
    var behaviors =3D element._behaviors;
    if (!behaviors) {
        element._behaviors =3D [this];
    }
    else {
        behaviors[behaviors.length] =3D this;
    }
}
    function Sys$UI$Behavior$get_element() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys.UI.Behavior.element"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._element;
    }
    function Sys$UI$Behavior$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Behavior.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var baseId =3D Sys.UI.Behavior.callBaseMethod(this, 'get_id');
        if (baseId) return baseId;
        if (!this._element || !this._element.id) return '';
        return this._element.id + '$' + this.get_name();
    }
    function Sys$UI$Behavior$get_name() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Behavior.name"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._name) return this._name;
        var name =3D Object.getTypeName(this);
        var i =3D name.lastIndexOf('.');
        if (i !=3D -1) name =3D name.substr(i + 1);
        if (!this.get_isInitialized()) this._name =3D name;
        return name;
    }
    function Sys$UI$Behavior$set_name(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if ((value =3D=3D=3D '') || (value.charAt(0) =3D=3D=3D ' ') || =
(value.charAt(value.length - 1) =3D=3D=3D ' '))
            throw Error.argument('value', Sys.Res.invalidId);
        if (typeof(this._element[value]) !=3D=3D 'undefined')
            throw =
Error.invalidOperation(String.format(Sys.Res.behaviorDuplicateName, =
value));
        if (this.get_isInitialized()) throw =
Error.invalidOperation(Sys.Res.cantSetNameAfterInit);
        this._name =3D value;
    }
    function Sys$UI$Behavior$initialize() {
        Sys.UI.Behavior.callBaseMethod(this, 'initialize');
        var name =3D this.get_name();
        if (name) this._element[name] =3D this;
    }
    function Sys$UI$Behavior$dispose() {
        Sys.UI.Behavior.callBaseMethod(this, 'dispose');
        if (this._element) {
            var name =3D this.get_name();
            if (name) {
                this._element[name] =3D null;
            }
            Array.remove(this._element._behaviors, this);
            delete this._element;
        }
    }
Sys.UI.Behavior.prototype =3D {
    _name: null,
    get_element: Sys$UI$Behavior$get_element,
    get_id: Sys$UI$Behavior$get_id,
    get_name: Sys$UI$Behavior$get_name,
    set_name: Sys$UI$Behavior$set_name,
    initialize: Sys$UI$Behavior$initialize,
    dispose: Sys$UI$Behavior$dispose
}
Sys.UI.Behavior.registerClass('Sys.UI.Behavior', Sys.Component);
Sys.UI.Behavior.getBehaviorByName =3D function =
Sys$UI$Behavior$getBehaviorByName(element, name) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviorByName" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"name" type=3D"String"></param>
    /// <returns type=3D"Sys.UI.Behavior" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "name", type: String}
    ]);
    if (e) throw e;
    var b =3D element[name];
    return (b && Sys.UI.Behavior.isInstanceOfType(b)) ? b : null;
}
Sys.UI.Behavior.getBehaviors =3D function =
Sys$UI$Behavior$getBehaviors(element) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviors" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Array" =
elementType=3D"Sys.UI.Behavior"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    if (!element._behaviors) return [];
    return Array.clone(element._behaviors);
}
Sys.UI.Behavior.getBehaviorsByType =3D function =
Sys$UI$Behavior$getBehaviorsByType(element, type) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviorsByType" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"type" type=3D"Type"></param>
    /// <returns type=3D"Array" =
elementType=3D"Sys.UI.Behavior"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "type", type: Type}
    ]);
    if (e) throw e;
    var behaviors =3D element._behaviors;
    var results =3D [];
    if (behaviors) {
        for (var i =3D 0, l =3D behaviors.length; i < l; i++) {
            if (type.isInstanceOfType(behaviors[i])) {
                results[results.length] =3D behaviors[i];
            }
        }
    }
    return results;
}
=20
Sys.UI.VisibilityMode =3D function Sys$UI$VisibilityMode() {
    /// <summary locid=3D"M:J#Sys.UI.VisibilityMode.#ctor" />
    /// <field name=3D"hide" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.VisibilityMode.hide"></field>
    /// <field name=3D"collapse" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.VisibilityMode.collapse"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.VisibilityMode.prototype =3D {
    hide: 0,
    collapse: 1
}
Sys.UI.VisibilityMode.registerEnum("Sys.UI.VisibilityMode");
=20
Sys.UI.Control =3D function Sys$UI$Control(element) {
    /// <summary locid=3D"M:J#Sys.UI.Control.#ctor" />
    /// <param name=3D"element" domElement=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    if (typeof(element.control) !=3D 'undefined') throw =
Error.invalidOperation(Sys.Res.controlAlreadyDefined);
    Sys.UI.Control.initializeBase(this);
    this._element =3D element;
    element.control =3D this;
}
    function Sys$UI$Control$get_element() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys.UI.Control.element"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._element;
    }
    function Sys$UI$Control$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Control.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) return '';
        return this._element.id;
    }
    function Sys$UI$Control$set_id(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        throw Error.invalidOperation(Sys.Res.cantSetId);
    }
    function Sys$UI$Control$get_parent() {
        /// <value type=3D"Sys.UI.Control" =
locid=3D"P:J#Sys.UI.Control.parent"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._parent) return this._parent;
        if (!this._element) return null;
       =20
        var parentElement =3D this._element.parentNode;
        while (parentElement) {
            if (parentElement.control) {
                return parentElement.control;
            }
            parentElement =3D parentElement.parentNode;
        }
        return null;
    }
    function Sys$UI$Control$set_parent(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.UI.Control}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        var parents =3D [this];
        var current =3D value;
        while (current) {
            if (Array.contains(parents, current)) throw =
Error.invalidOperation(Sys.Res.circularParentChain);
            parents[parents.length] =3D current;
            current =3D current.get_parent();
        }
        this._parent =3D value;
    }
    function Sys$UI$Control$get_visibilityMode() {
        /// <value type=3D"Sys.UI.VisibilityMode" =
locid=3D"P:J#Sys.UI.Control.visibilityMode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        return Sys.UI.DomElement.getVisibilityMode(this._element);
    }
    function Sys$UI$Control$set_visibilityMode(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.UI.VisibilityMode}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.setVisibilityMode(this._element, value);
    }
    function Sys$UI$Control$get_visible() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.UI.Control.visible"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        return Sys.UI.DomElement.getVisible(this._element);
    }
    function Sys$UI$Control$set_visible(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.setVisible(this._element, value)
    }
    function Sys$UI$Control$addCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.addCssClass" />
        /// <param name=3D"className" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.addCssClass(this._element, className);
    }
    function Sys$UI$Control$dispose() {
        Sys.UI.Control.callBaseMethod(this, 'dispose');
        if (this._element) {
            this._element.control =3D undefined;
            delete this._element;
        }
        if (this._parent) delete this._parent;
    }
    function Sys$UI$Control$onBubbleEvent(source, args) {
        /// <summary locid=3D"M:J#Sys.UI.Control.onBubbleEvent" />
        /// <param name=3D"source"></param>
        /// <param name=3D"args" type=3D"Sys.EventArgs"></param>
        /// <returns type=3D"Boolean"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "source"},
            {name: "args", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        return false;
    }
    function Sys$UI$Control$raiseBubbleEvent(source, args) {
        /// <summary locid=3D"M:J#Sys.UI.Control.raiseBubbleEvent" />
        /// <param name=3D"source"></param>
        /// <param name=3D"args" type=3D"Sys.EventArgs"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "source"},
            {name: "args", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        var currentTarget =3D this.get_parent();
        while (currentTarget) {
            if (currentTarget.onBubbleEvent(source, args)) {
                return;
            }
            currentTarget =3D currentTarget.get_parent();
        }
    }
    function Sys$UI$Control$removeCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.removeCssClass" />
        /// <param name=3D"className" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.removeCssClass(this._element, className);
    }
    function Sys$UI$Control$toggleCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.toggleCssClass" />
        /// <param name=3D"className" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.toggleCssClass(this._element, className);
    }
Sys.UI.Control.prototype =3D {
    _parent: null,
    _visibilityMode: Sys.UI.VisibilityMode.hide,
    get_element: Sys$UI$Control$get_element,
    get_id: Sys$UI$Control$get_id,
    set_id: Sys$UI$Control$set_id,
    get_parent: Sys$UI$Control$get_parent,
    set_parent: Sys$UI$Control$set_parent,
    get_visibilityMode: Sys$UI$Control$get_visibilityMode,
    set_visibilityMode: Sys$UI$Control$set_visibilityMode,
    get_visible: Sys$UI$Control$get_visible,
    set_visible: Sys$UI$Control$set_visible,
    addCssClass: Sys$UI$Control$addCssClass,
    dispose: Sys$UI$Control$dispose,
    onBubbleEvent: Sys$UI$Control$onBubbleEvent,
    raiseBubbleEvent: Sys$UI$Control$raiseBubbleEvent,
    removeCssClass: Sys$UI$Control$removeCssClass,
    toggleCssClass: Sys$UI$Control$toggleCssClass
}
Sys.UI.Control.registerClass('Sys.UI.Control', Sys.Component);


Type.registerNamespace('Sys');
Sys.Res=3D{
"urlMustBeLessThan1024chars":"=E6=AD=A4=E8=A8=98=E9=8C=84=E7=8B=80=E6=85=8B=
=E5=BF=85=E9=A0=88=E5=B0=8F=E5=88=B0=E8=83=BD=E8=AE=93 URL =
=E5=A4=A7=E6=96=BC 1024 =E5=80=8B=E5=AD=97=E5=85=83=E3=80=82",
"argumentTypeName":"=E5=80=BC=E4=B8=8D=E6=98=AF=E7=8F=BE=E6=9C=89=E5=9E=8B=
=E5=88=A5=E7=9A=84=E5=90=8D=E7=A8=B1=E3=80=82",
"methodRegisteredTwice":"=E6=96=B9=E6=B3=95 {0} =
=E5=B7=B2=E7=B6=93=E8=A8=BB=E5=86=8A=E9=81=8E=E4=BA=86=E3=80=82",
"cantSetIdAfterInit":"=E7=84=A1=E6=B3=95=E5=9C=A8=E5=88=9D=E5=A7=8B=E8=A8=
=AD=E5=AE=9A=E4=B9=8B=E5=BE=8C=E5=9C=A8=E6=AD=A4=E7=89=A9=E4=BB=B6=E4=B8=8A=
=E8=A8=AD=E5=AE=9A ID =E5=B1=AC=E6=80=A7=E3=80=82",
"cantBeCalledAfterDispose":"=E7=84=A1=E6=B3=95=E5=9C=A8=E8=99=95=E7=BD=AE=
=E4=B9=8B=E5=BE=8C=E5=91=BC=E5=8F=AB=E3=80=82",
"componentCantSetIdAfterAddedToApp":"=E5=85=83=E4=BB=B6=E7=9A=84 ID =
=E5=B1=AC=E6=80=A7=E4=B8=8D=E5=8F=AF=E5=9C=A8=E5=AE=83=E5=B7=B2=E5=8A=A0=E5=
=85=A5=E5=88=B0 Application =
=E7=89=A9=E4=BB=B6=E4=B9=8B=E5=BE=8C=E8=A8=AD=E5=AE=9A=E3=80=82",
"behaviorDuplicateName":"=E5=B7=B2=E7=B6=93=E6=9C=89=E5=90=8D=E7=82=BA =
\u0027{0}\u0027 =
=E7=9A=84=E8=A1=8C=E7=82=BA=EF=BC=8C=E6=88=96=E8=80=85=E5=AE=83=E6=98=AF=E7=
=9B=AE=E6=A8=99=E9=A0=85=E7=9B=AE=E4=B8=8A=E7=9A=84=E7=8F=BE=E6=9C=89=E5=B1=
=AC=E6=80=A7=E3=80=82",
"notATypeName":"=E5=80=BC=E4=B8=8D=E6=98=AF=E6=9C=89=E6=95=88=E7=9A=84=E5=
=9E=8B=E5=88=A5=E5=90=8D=E7=A8=B1=E3=80=82",
"typeShouldBeTypeOrString":"=E5=80=BC=E4=B8=8D=E6=98=AF=E6=9C=89=E6=95=88=
=E7=9A=84=E5=9E=8B=E5=88=A5=E6=88=96=E6=9C=89=E6=95=88=E7=9A=84=E5=9E=8B=E5=
=88=A5=E5=90=8D=E7=A8=B1=E3=80=82",
"historyInvalidHistorySettingCombination":"=E7=84=A1=E6=B3=95=E5=9C=A8 =
ScriptManager.EnableHistory =E7=82=BA true =E6=99=82=E5=B0=87 =
enableHistory =E8=A8=AD=E5=AE=9A=E7=82=BA false=E3=80=82",
"stateMustBeStringDictionary":"=E6=AD=A4=E7=8B=80=E6=85=8B=E7=89=A9=E4=BB=
=B6=E5=8F=AA=E8=83=BD=E6=9C=89 null =
=E5=92=8C=E5=AD=97=E4=B8=B2=E6=AC=84=E4=BD=8D=E3=80=82",
"boolTrueOrFalse":"=E5=80=BC=E5=BF=85=E9=A0=88=E6=98=AF \u0027true\u0027 =
=E6=88=96 \u0027false\u0027=E3=80=82",
"scriptLoadFailedNoHead":"ScriptLoader =
=E9=9C=80=E8=A6=81=E9=A0=81=E9=9D=A2=E4=BE=86=E5=8C=85=E5=90=AB =
\u003chead\u003e =E9=A0=85=E7=9B=AE=E3=80=82",
"stringFormatInvalid":"=E6=A0=BC=E5=BC=8F=E5=AD=97=E4=B8=B2=E7=84=A1=E6=95=
=88=E3=80=82",
"referenceNotFound":"=E6=89=BE=E4=B8=8D=E5=88=B0=E5=85=83=E4=BB=B6 =
\u0027{0}\u0027=E3=80=82",
"enumReservedName":"\u0027{0}\u0027 =
=E6=98=AF=E4=BF=9D=E7=95=99=E5=90=8D=E7=A8=B1=EF=BC=8C=E4=B8=8D=E5=8F=AF=E7=
=95=B6=E5=81=9A=E5=88=97=E8=88=89=E5=80=BC=E5=90=8D=E7=A8=B1=E4=BD=BF=E7=94=
=A8=E3=80=82",
"eventHandlerNotFound":"=E6=89=BE=E4=B8=8D=E5=88=B0=E8=99=95=E7=90=86=E5=B8=
=B8=E5=BC=8F=E3=80=82",
"circularParentChain":"=E6=8E=A7=E5=88=B6=E9=A0=85=E7=88=B6=E4=BB=A3=E7=9A=
=84=E9=8D=8A=E7=B5=90=E4=B8=8D=E5=8F=AF=E6=9C=89=E5=BE=AA=E7=92=B0=E5=8F=83=
=E8=80=83=E3=80=82",
"undefinedEvent":"\u0027{0}\u0027 =
=E4=B8=8D=E6=98=AF=E4=BA=8B=E4=BB=B6=E3=80=82",
"notAMethod":"{0} =E4=B8=8D=E6=98=AF=E6=96=B9=E6=B3=95=E3=80=82",
"propertyUndefined":"\u0027{0}\u0027 =
=E4=B8=8D=E6=98=AF=E5=B1=AC=E6=80=A7=E6=88=96=E7=8F=BE=E6=9C=89=E6=AC=84=E4=
=BD=8D=E3=80=82",
"historyCannotEnableHistory":"=E7=84=A1=E6=B3=95=E5=9C=A8=E5=88=9D=E5=A7=8B=
=E8=A8=AD=E5=AE=9A=E4=B9=8B=E5=BE=8C=E8=A8=AD=E5=AE=9A =
enableHistory=E3=80=82",
"eventHandlerInvalid":"=E6=9C=AA=E9=80=8F=E9=81=8E =
Sys.UI.DomEvent.addHandler =
=E6=96=B9=E6=B3=95=E5=8A=A0=E5=85=A5=E8=99=95=E7=90=86=E5=B8=B8=E5=BC=8F=E3=
=80=82",
"scriptLoadFailedDebug":"=E7=84=A1=E6=B3=95=E8=BC=89=E5=85=A5=E6=8C=87=E4=
=BB=A4=E7=A2=BC \u0027{0}\u0027=E3=80=82=E8=AB=8B=E6=AA=A2=E6=9F=A5:\r\n =
=E7=84=A1=E6=B3=95=E5=AD=98=E5=8F=96=E7=9A=84=E8=B7=AF=E5=BE=91=E3=80=82\=
r\n =E6=8C=87=E4=BB=A4=E7=A2=BC=E9=8C=AF=E8=AA=A4=E3=80=82(IE) =
=E5=9C=A8=E9=80=B2=E9=9A=8E=E8=A8=AD=E5=AE=9A=E4=B8=8B=E5=95=9F=E7=94=A8 =
[=E6=AF=8F=E6=AC=A1=E5=87=BA=E7=8F=BE script =
=E9=8C=AF=E8=AA=A4=E6=99=82=E7=9A=86=E9=A1=AF=E7=A4=BA=E9=80=9A=E7=9F=A5]=
=E3=80=82\r\n =E9=81=BA=E6=BC=8F=E5=B0=8D =
Sys.Application.notifyScriptLoaded() =
=E7=9A=84=E5=91=BC=E5=8F=AB=E3=80=82",
"propertyNotWritable":"\u0027{0}\u0027 =
=E4=B8=8D=E6=98=AF=E5=8F=AF=E5=AF=AB=E5=85=A5=E5=B1=AC=E6=80=A7=E3=80=82"=
,
"enumInvalidValueName":"\u0027{0}\u0027 =
=E4=B8=8D=E6=98=AF=E5=88=97=E8=88=89=E5=80=BC=E7=9A=84=E6=9C=89=E6=95=88=E5=
=90=8D=E7=A8=B1=E3=80=82",
"controlAlreadyDefined":"=E5=B7=B2=E7=B6=93=E6=9C=89=E6=8E=A7=E5=88=B6=E9=
=A0=85=E8=88=87=E6=AD=A4=E9=A0=85=E7=9B=AE=E9=97=9C=E8=81=AF=E3=80=82",
"addHandlerCantBeUsedForError":"=E4=BD=BF=E7=94=A8=E9=80=99=E5=80=8B=E6=96=
=B9=E6=B3=95=E7=84=A1=E6=B3=95=E5=8A=A0=E5=85=A5=E9=8C=AF=E8=AA=A4=E4=BA=8B=
=E4=BB=B6=E7=9A=84=E8=99=95=E7=90=86=E5=B8=B8=E5=BC=8F=E3=80=82=E8=AB=8B=E6=
=94=B9=E7=82=BA=E8=A8=AD=E5=AE=9A window.onerror =
=E5=B1=AC=E6=80=A7=E3=80=82",
"namespaceContainsObject":"=E7=89=A9=E4=BB=B6 {0} =
=E5=B7=B2=E7=B6=93=E5=AD=98=E5=9C=A8=E8=80=8C=E4=B8=94=E4=B8=8D=E6=98=AF=E5=
=91=BD=E5=90=8D=E7=A9=BA=E9=96=93=E3=80=82",
"cantAddNonFunctionhandler":"=E7=84=A1=E6=B3=95=E5=8A=A0=E5=85=A5=E4=B8=8D=
=E6=98=AF=E5=87=BD=E5=BC=8F=E7=9A=84=E8=99=95=E7=90=86=E5=B8=B8=E5=BC=8F=E3=
=80=82",
"invalidNameSpace":"=E5=80=BC=E4=B8=8D=E6=98=AF=E6=9C=89=E6=95=88=E7=9A=84=
=E5=91=BD=E5=90=8D=E7=A9=BA=E9=96=93=E8=AD=98=E5=88=A5=E9=A0=85=E3=80=82"=
,
"notAnInterface":"=E5=80=BC=E4=B8=8D=E6=98=AF=E6=9C=89=E6=95=88=E7=9A=84=E4=
=BB=8B=E9=9D=A2=E3=80=82",
"eventHandlerNotFunction":"=E8=99=95=E7=90=86=E5=B8=B8=E5=BC=8F=E5=BF=85=E9=
=A0=88=E6=98=AF=E5=87=BD=E5=BC=8F=E3=80=82",
"propertyNotAnArray":"\u0027{0}\u0027 =E4=B8=8D=E6=98=AF Array =
=E5=B1=AC=E6=80=A7=E3=80=82",
"typeRegisteredTwice":"=E5=9E=8B=E5=88=A5 {0} =
=E5=B7=B2=E7=B6=93=E8=A8=BB=E5=86=8A=E9=81=8E=E4=BA=86=E3=80=82=E6=AD=A4=E5=
=9E=8B=E5=88=A5=E5=8F=AF=E8=83=BD=E5=AE=9A=E7=BE=A9=E4=BA=86=E5=A4=9A=E6=AC=
=A1=EF=BC=8C=E6=88=96=E6=98=AF=E5=B7=B2=E7=B6=93=E8=BC=89=E5=85=A5=E4=BA=86=
=E5=AE=9A=E7=BE=A9=E5=AE=83=E7=9A=84=E6=8C=87=E4=BB=A4=E7=A2=BC=E6=AA=94=E3=
=80=82=E5=8F=AF=E8=83=BD=E5=8E=9F=E5=9B=A0=E6=98=AF=E5=9C=A8=E9=83=A8=E5=88=
=86=E6=9B=B4=E6=96=B0=E6=99=82=E9=80=B2=E8=A1=8C=E4=BA=86=E8=A8=AD=E5=AE=9A=
=E8=AE=8A=E6=9B=B4=E3=80=82",
"cantSetNameAfterInit":"=E7=84=A1=E6=B3=95=E5=9C=A8=E5=88=9D=E5=A7=8B=E8=A8=
=AD=E5=AE=9A=E4=B9=8B=E5=BE=8C=E5=9C=A8=E6=AD=A4=E7=89=A9=E4=BB=B6=E4=B8=8A=
=E8=A8=AD=E5=AE=9A=E5=90=8D=E7=A8=B1=E5=B1=AC=E6=80=A7=E3=80=82",
"historyMissingFrame":"=E5=A6=82=E6=9E=9C=E8=A6=81=E8=AE=93=E8=A8=98=E9=8C=
=84=E5=8A=9F=E8=83=BD=E5=9C=A8 IE =
=E4=B8=AD=E9=81=8B=E4=BD=9C=EF=BC=8C=E6=AD=A4=E9=A0=81=E9=9D=A2=E5=BF=85=E9=
=A0=88=E6=9C=89 ID =E7=82=BA \u0027__historyFrame\u0027 =E7=9A=84 iFrame =
=E9=A0=85=E7=9B=AE=EF=BC=8C=E6=8C=87=E5=90=91=E5=BE=9E \u0027title\u0027 =
=E6=9F=A5=E8=A9=A2=E5=AD=97=E4=B8=B2=E5=8F=83=E6=95=B8=E5=8F=96=E5=BE=97=E6=
=A8=99=E9=A1=8C=E4=B8=A6=E4=B8=94=E5=9C=A8=E7=88=B6=E8=A6=96=E7=AA=97=E4=B8=
=8A=E5=91=BC=E5=8F=AB Sys.Application._onIFrameLoad() =
=E7=9A=84=E9=A0=81=E9=9D=A2=E3=80=82=E5=9C=A8 ScriptManager =
=E4=B8=8A=E5=B0=87 EnableHistory =E8=A8=AD=E5=AE=9A=E7=82=BA true =
=E5=8D=B3=E5=8F=AF=E5=AE=8C=E6=88=90=E6=AD=A4=E5=8B=95=E4=BD=9C=E3=80=82"=
,
"appDuplicateComponent":"=E4=B8=8D=E5=8F=AF=E5=B0=87=E5=85=A9=E5=80=8B=E5=
=85=B7=E6=9C=89=E7=9B=B8=E5=90=8C ID \u0027{0}\u0027 =
=E7=9A=84=E5=85=83=E4=BB=B6=E5=8A=A0=E5=85=A5=E6=AD=A4=E6=87=89=E7=94=A8=E7=
=A8=8B=E5=BC=8F=E3=80=82",
"historyCannotAddHistoryPointWithHistoryDisabled":"=E5=8F=AA=E8=83=BD=E5=9C=
=A8 enableHistory =E8=A8=AD=E5=AE=9A=E7=82=BA true =
=E6=99=82=E5=8A=A0=E5=85=A5=E8=A8=98=E9=8C=84=E9=BB=9E=E3=80=82",
"appComponentMustBeInitialized":"=E5=85=83=E4=BB=B6=E5=BF=85=E9=A0=88=E5=85=
=88=E5=88=9D=E5=A7=8B=E5=8C=96=E7=84=B6=E5=BE=8C=E5=86=8D=E5=8A=A0=E5=85=A5=
=E5=88=B0 Application =E7=89=A9=E4=BB=B6=E3=80=82",
"baseNotAClass":"=E5=80=BC=E4=B8=8D=E6=98=AF=E9=A1=9E=E5=88=A5=E3=80=82",=

"methodNotFound":"=E6=89=BE=E4=B8=8D=E5=88=B0=E5=90=8D=E7=82=BA =
\u0027{0}\u0027 =E7=9A=84=E6=96=B9=E6=B3=95=E3=80=82",
"arrayParseBadFormat":"=E5=80=BC=E5=BF=85=E9=A0=88=E6=98=AF=E9=99=A3=E5=88=
=97=E7=9A=84=E6=9C=89=E6=95=88=E5=AD=97=E4=B8=B2=E8=A1=A8=E7=A4=BA=E3=80=82=
=E5=AE=83=E5=BF=85=E9=A0=88=E4=BB=A5 \u0027[\u0027 =
=E9=96=8B=E9=A0=AD=EF=BC=8C=E4=B8=A6=E4=BB=A5 \u0027]\u0027 =
=E7=B5=90=E5=B0=BE=E3=80=82",
"stateFieldNameInvalid":"=E7=8B=80=E6=85=8B=E6=AC=84=E4=BD=8D=E5=90=8D=E7=
=A8=B1=E4=B8=8D=E5=8F=AF=E5=8C=85=E5=90=AB=E4=BB=BB=E4=BD=95 =
\u0027=3D\u0027 =E5=AD=97=E5=85=83=E3=80=82",
"cantSetId":"=E7=84=A1=E6=B3=95=E5=9C=A8=E6=AD=A4=E7=89=A9=E4=BB=B6=E4=B8=
=8A=E8=A8=AD=E5=AE=9A ID =E5=B1=AC=E6=80=A7=E3=80=82",
"historyMissingHiddenInput":"=E5=A6=82=E6=9E=9C=E8=A6=81=E8=AE=93=E8=A8=98=
=E9=8C=84=E5=8A=9F=E8=83=BD=E5=9C=A8 Safari 2 =
=E4=B8=AD=E9=81=8B=E4=BD=9C=EF=BC=8C=E6=AD=A4=E9=A0=81=E9=9D=A2=E5=BF=85=E9=
=A0=88=E6=9C=89 ID =E7=82=BA \u0027__history\u0027 =
=E7=9A=84=E9=9A=B1=E8=97=8F=E8=BC=B8=E5=85=A5=E9=A0=85=E7=9B=AE=E3=80=82"=
,
"stringFormatBraceMismatch":"=E6=A0=BC=E5=BC=8F=E5=AD=97=E4=B8=B2=E5=8C=85=
=E5=90=AB=E4=B8=8D=E5=B0=8D=E7=A8=B1=E7=9A=84=E5=B7=A6=E9=82=8A=E6=88=96=E5=
=8F=B3=E9=82=8A=E5=A4=A7=E6=8B=AC=E8=99=9F=E3=80=82",
"enumValueNotInteger":"=E5=88=97=E8=88=89=E5=9E=8B=E5=88=A5=E5=AE=9A=E7=BE=
=A9=E5=8F=AA=E8=83=BD=E5=8C=85=E5=90=AB=E6=95=B4=E6=95=B8=E5=80=BC=E3=80=82=
",
"propertyNullOrUndefined":"=E7=84=A1=E6=B3=95=E8=A8=AD=E5=AE=9A =
\u0027{0}\u0027 =
=E7=9A=84=E5=B1=AC=E6=80=A7=EF=BC=8C=E5=9B=A0=E7=82=BA=E5=AE=83=E5=82=B3=E5=
=9B=9E=E4=BA=86 null =E5=80=BC=E3=80=82",
"argumentDomNode":"=E5=80=BC=E5=BF=85=E9=A0=88=E6=98=AF DOM =
=E9=A0=85=E7=9B=AE=E6=88=96=E6=96=87=E5=AD=97=E7=AF=80=E9=BB=9E=E3=80=82"=
,
"componentCantSetIdTwice":"=E5=85=83=E4=BB=B6=E7=9A=84 ID =
=E5=B1=AC=E6=80=A7=E4=B8=8D=E5=8F=AF=E8=A8=AD=E5=AE=9A=E4=B8=80=E6=AC=A1=E4=
=BB=A5=E4=B8=8A=E3=80=82",
"createComponentOnDom":"=E4=B8=8D=E6=98=AF=E6=8E=A7=E5=88=B6=E9=A0=85=E6=88=
=96=E8=A1=8C=E7=82=BA=E7=9A=84=E5=85=83=E4=BB=B6=E5=80=BC=E5=BF=85=E9=A0=88=
=E6=98=AF null=E3=80=82",
"createNotComponent":"{0} =E4=B8=8D=E6=98=AF=E8=A1=8D=E7=94=9F=E8=87=AA =
Sys.Component=E3=80=82",
"createNoDom":"=E6=8E=A7=E5=88=B6=E9=A0=85=E6=88=96=E8=A1=8C=E7=82=BA=E7=9A=
=84=E5=80=BC=E4=B8=8D=E5=8F=AF=E7=82=BA null=E3=80=82",
"cantAddWithoutId":"=E7=84=A1=E6=B3=95=E5=8A=A0=E5=85=A5=E6=B2=92=E6=9C=89=
 ID =E7=9A=84=E5=85=83=E4=BB=B6=E3=80=82",
"badTypeName":"=E5=80=BC=E4=B8=8D=E6=98=AF=E6=89=80=E8=A8=BB=E5=86=8A=E5=9E=
=8B=E5=88=A5=E7=9A=84=E5=90=8D=E7=A8=B1=EF=BC=8C=E6=88=96=E8=A9=B2=E5=90=8D=
=E7=A8=B1=E6=98=AF=E4=BF=9D=E7=95=99=E5=AD=97=E3=80=82",
"argumentInteger":"=E5=80=BC=E5=BF=85=E9=A0=88=E6=98=AF=E6=95=B4=E6=95=B8=
=E3=80=82",
"scriptLoadMultipleCallbacks":"=E6=8C=87=E4=BB=A4=E7=A2=BC =
\u0027{0}\u0027 =E5=8C=85=E5=90=AB=E5=A4=9A=E5=80=8B =
Sys.Application.notifyScriptLoaded() =
=E7=9A=84=E5=91=BC=E5=8F=AB=E3=80=82=E5=8F=AA=E5=85=81=E8=A8=B1=E6=9C=89=E4=
=B8=80=E5=80=8B=E3=80=82",
"invokeCalledTwice":"=E7=84=A1=E6=B3=95=E5=91=BC=E5=8F=AB Invoke =
=E4=B8=80=E6=AC=A1=E4=BB=A5=E4=B8=8A=E3=80=82",
"webServiceFailed":"=E4=BC=BA=E6=9C=8D=E5=99=A8=E6=96=B9=E6=B3=95 =
\u0027{0}\u0027 =
=E5=A4=B1=E6=95=97=EF=BC=8C=E7=99=BC=E7=94=9F=E4=B8=8B=E5=88=97=E9=8C=AF=E8=
=AA=A4: {1}",
"webServiceInvalidJsonWrapper":"=E4=BC=BA=E6=9C=8D=E5=99=A8=E6=96=B9=E6=B3=
=95 \u0027{0}\u0027 =
=E5=82=B3=E5=9B=9E=E4=BA=86=E7=84=A1=E6=95=88=E7=9A=84=E8=B3=87=E6=96=99=E3=
=80=82JSON =E5=8C=85=E8=A3=9D=E5=87=BD=E5=BC=8F=E9=81=BA=E6=BC=8F =
\u0027d\u0027 =E5=B1=AC=E6=80=A7=E3=80=82",
"argumentType":"=E7=89=A9=E4=BB=B6=E7=84=A1=E6=B3=95=E8=BD=89=E6=8F=9B=E7=
=82=BA=E8=A6=81=E6=B1=82=E7=9A=84=E5=9E=8B=E5=88=A5=E3=80=82",
"argumentNull":"=E5=80=BC=E4=B8=8D=E8=83=BD=E7=82=BA null=E3=80=82",
"controlCantSetId":"ID =
=E5=B1=AC=E6=80=A7=E4=B8=8D=E5=8F=AF=E5=9C=A8=E6=8E=A7=E5=88=B6=E9=A0=85=E4=
=B8=8A=E8=A8=AD=E5=AE=9A=E3=80=82",
"formatBadFormatSpecifier":"=E6=A0=BC=E5=BC=8F=E8=A6=8F=E7=AF=84=E7=84=A1=
=E6=95=88=E3=80=82",
"webServiceFailedNoMsg":"=E4=BC=BA=E6=9C=8D=E5=99=A8=E6=96=B9=E6=B3=95 =
\u0027{0}\u0027 =E5=A4=B1=E6=95=97=E3=80=82",
"argumentDomElement":"=E5=80=BC=E5=BF=85=E9=A0=88=E6=98=AF DOM =
=E9=A0=85=E7=9B=AE=E3=80=82",
"invalidExecutorType":"=E7=84=A1=E6=B3=95=E5=BE=9E=E4=B8=8B=E5=88=97=E5=BB=
=BA=E7=AB=8B=E6=9C=89=E6=95=88=E7=9A=84 Sys.Net.WebRequestExecutor: =
{0}=E3=80=82",
"cannotCallBeforeResponse":"responseAvailable =E7=82=BA false =
=E6=99=82=E7=84=A1=E6=B3=95=E5=91=BC=E5=8F=AB {0}=E3=80=82",
"actualValue":"=E5=AF=A6=E9=9A=9B=E7=9A=84=E5=80=BC=E7=82=BA =
{0}=E3=80=82",
"enumInvalidValue":"\u0027{0}\u0027 =E4=B8=8D=E6=98=AF=E5=88=97=E8=88=89 =
{1} =E7=9A=84=E6=9C=89=E6=95=88=E5=80=BC=E3=80=82",
"scriptLoadFailed":"=E7=84=A1=E6=B3=95=E8=BC=89=E5=85=A5=E6=8C=87=E4=BB=A4=
=E7=A2=BC \u0027{0}\u0027=E3=80=82",
"parameterCount":"=E5=8F=83=E6=95=B8=E6=95=B8=E7=9B=AE=E4=B8=8D=E7=AC=A6=E3=
=80=82",
"cannotDeserializeEmptyString":"=E7=84=A1=E6=B3=95=E9=82=84=E5=8E=9F=E5=BA=
=8F=E5=88=97=E5=8C=96=E7=A9=BA=E5=AD=97=E4=B8=B2=E3=80=82",
"formatInvalidString":"=E8=BC=B8=E5=85=A5=E5=AD=97=E4=B8=B2=E6=A0=BC=E5=BC=
=8F=E4=B8=8D=E6=AD=A3=E7=A2=BA=E3=80=82",
"invalidTimeout":"=E5=80=BC=E5=BF=85=E9=A0=88=E5=A4=A7=E6=96=BC=E6=88=96=E7=
=AD=89=E6=96=BC=E9=9B=B6=E3=80=82",
"cannotAbortBeforeStart":"=E7=84=A1=E6=B3=95=E5=9C=A8=E5=9F=B7=E8=A1=8C=E7=
=A8=8B=E5=BC=8F=E5=95=9F=E5=8B=95=E5=BE=8C=E4=B8=AD=E6=AD=A2=E3=80=82",
"argument":"=E5=80=BC=E6=9C=AA=E8=90=BD=E5=9C=A8=E9=A0=90=E6=9C=9F=E7=9A=84=
=E7=AF=84=E5=9C=8D=E5=85=A7=E3=80=82",
"cannotDeserializeInvalidJson":"=E7=84=A1=E6=B3=95=E9=82=84=E5=8E=9F=E5=BA=
=8F=E5=88=97=E5=8C=96=E3=80=82=E8=B3=87=E6=96=99=E6=9C=AA=E5=B0=8D=E6=87=89=
=E5=88=B0=E6=9C=89=E6=95=88=E7=9A=84 JSON=E3=80=82",
"invalidHttpVerb":"httpVerb =
=E4=B8=8D=E5=8F=AF=E8=A8=AD=E5=AE=9A=E7=82=BA=E7=A9=BA=E5=AD=97=E4=B8=B2=E6=
=88=96 null =E5=AD=97=E4=B8=B2=E3=80=82",
"nullWebRequest":"=E4=B8=8D=E5=8F=AF=E4=BB=A5 null webRequest =
=E5=91=BC=E5=8F=AB executeRequest=E3=80=82",
"eventHandlerInvalid":"=E6=9C=AA=E9=80=8F=E9=81=8E =
Sys.UI.DomEvent.addHandler =
=E6=96=B9=E6=B3=95=E5=8A=A0=E5=85=A5=E8=99=95=E7=90=86=E5=B8=B8=E5=BC=8F=E3=
=80=82",
"cannotSerializeNonFiniteNumbers":"=E7=84=A1=E6=B3=95=E5=BA=8F=E5=88=97=E5=
=8C=96=E9=9D=9E=E6=9C=89=E9=99=90=E6=95=B8=E7=9B=AE=E3=80=82",
"argumentUndefined":"=E5=80=BC=E7=84=A1=E6=B3=95=E7=A7=BB=E9=99=A4=E5=AE=9A=
=E7=BE=A9=E3=80=82",
"webServiceInvalidReturnType":"=E4=BC=BA=E6=9C=8D=E5=99=A8=E6=96=B9=E6=B3=
=95 \u0027{0}\u0027 =
=E5=82=B3=E5=9B=9E=E4=BA=86=E7=84=A1=E6=95=88=E7=9A=84=E5=9E=8B=E5=88=A5=E3=
=80=82=E5=BF=85=E9=A0=88=E6=98=AF=E5=9E=8B=E5=88=A5: {1}",
"servicePathNotSet":"=E6=AD=A4 Web =
=E6=9C=8D=E5=8B=99=E7=9A=84=E8=B7=AF=E5=BE=91=E5=B0=9A=E6=9C=AA=E8=A8=AD=E5=
=AE=9A=E3=80=82",
"argumentTypeWithTypes":"=E5=9E=8B=E5=88=A5 \u0027{0}\u0027 =
=E7=9A=84=E7=89=A9=E4=BB=B6=E7=84=A1=E6=B3=95=E8=BD=89=E6=8F=9B=E6=88=90=E5=
=9E=8B=E5=88=A5 \u0027{1}\u0027=E3=80=82",
"cannotCallOnceStarted":"=E7=84=A1=E6=B3=95=E5=9C=A8=E5=95=9F=E5=8B=95=E5=
=BE=8C=E5=91=BC=E5=8F=AB {0}=E3=80=82",
"badBaseUrl1":"=E5=9F=BA=E7=A4=8E URL =
=E6=9C=AA=E5=8C=85=E5=90=AB://=E3=80=82",
"badBaseUrl2":"=E5=9F=BA=E7=A4=8E URL =
=E6=9C=AA=E5=8C=85=E5=90=AB=E5=85=B6=E4=BB=96 /=E3=80=82",
"badBaseUrl3":"=E5=9F=BA=E7=A4=8E URL =
=E4=B8=AD=E6=89=BE=E4=B8=8D=E5=88=B0=E6=9C=80=E5=BE=8C=E4=B8=80=E5=80=8B =
/=E3=80=82",
"setExecutorAfterActive":"=E7=84=A1=E6=B3=95=E5=9C=A8=E5=9F=B7=E8=A1=8C=E7=
=A8=8B=E5=BC=8F=E8=AE=8A=E6=88=90=E4=BD=BF=E7=94=A8=E4=B8=AD=E7=8B=80=E6=85=
=8B=E5=BE=8C=E8=A8=AD=E5=AE=9A=E5=AE=83=E3=80=82",
"paramName":"=E5=8F=83=E6=95=B8=E5=90=8D=E7=A8=B1: {0}",
"cannotCallOutsideHandler":"=E7=84=A1=E6=B3=95=E5=9C=A8=E5=B7=B2=E5=AE=8C=
=E6=88=90=E7=9A=84=E4=BA=8B=E4=BB=B6=E8=99=95=E7=90=86=E5=B8=B8=E5=BC=8F=E4=
=B9=8B=E5=A4=96=E5=91=BC=E5=8F=AB {0}=E3=80=82",
"cannotSerializeObjectWithCycle":"=E7=84=A1=E6=B3=95=E5=BA=8F=E5=88=97=E5=
=8C=96=E5=AD=90=E5=B1=AC=E6=80=A7=E5=85=A7=E6=9C=89=E5=BE=AA=E7=92=B0=E5=8F=
=83=E8=80=83=E7=9A=84=E7=89=A9=E4=BB=B6=E3=80=82",
"format":"=E8=BE=A8=E8=AD=98=E9=A0=85=E7=9B=AE=E7=9A=84=E5=85=B6=E4=B8=AD=
=E4=B9=8B=E4=B8=80=E4=BD=BF=E7=94=A8=E7=84=A1=E6=95=88=E7=9A=84=E6=A0=BC=E5=
=BC=8F=E3=80=82",
"assertFailedCaller":"=E5=88=A4=E6=96=B7=E6=8F=90=E7=A4=BA=E5=A4=B1=E6=95=
=97: {0}\r\n=E4=BD=8D=E6=96=BC {1}",
"argumentOutOfRange":"=E6=8C=87=E5=AE=9A=E7=9A=84=E5=BC=95=E6=95=B8=E8=B6=
=85=E5=87=BA=E6=9C=89=E6=95=88=E5=80=BC=E7=9A=84=E7=AF=84=E5=9C=8D=E3=80=82=
",
"webServiceTimedOut":"=E4=BC=BA=E6=9C=8D=E5=99=A8=E6=96=B9=E6=B3=95 =
\u0027{0}\u0027 =E9=80=BE=E6=99=82=E3=80=82",
"notImplemented":"=E6=96=B9=E6=B3=95=E6=88=96=E4=BD=9C=E6=A5=AD=E5=B0=9A=E6=
=9C=AA=E5=AF=A6=E4=BD=9C=E3=80=82",
"assertFailed":"=E5=88=A4=E6=96=B7=E6=8F=90=E7=A4=BA=E5=A4=B1=E6=95=97: =
{0}",
"invalidOperation":"=E7=94=B1=E6=96=BC=E8=A9=B2=E7=89=A9=E4=BB=B6=E7=9B=AE=
=E5=89=8D=E7=9A=84=E7=8B=80=E6=85=8B=EF=BC=8C=E5=B0=8E=E8=87=B4=E4=BD=9C=E6=
=A5=AD=E7=84=A1=E6=95=88=E3=80=82",
"breakIntoDebugger":"{0}\r\n\r\n=E8=BF=94=E5=9B=9E=E5=81=B5=E9=8C=AF=E5=B7=
=A5=E5=85=B7?"
};

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0000_01CFD991.5B4E09C0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.rootlaw.com.tw/ScriptResource.axd?d=z45tiSKUaRbUrfMOlWBQ4eyxALi5WTe2Ho7SHVNzCTdsqibOzePtr2G0_xikhJMcTySf6VoLZnzIfO78ZATCaWnbjQcAYkAcgyQMsv6UyVDd8uLkXBmmI6E5qW2L4uI9lO7Uu3nmsPU_Ef3US8iz7WDUrLN9VwEh7az8WmATbMDTCt1n0&t=2e2045e2

=EF=BB=BF// Name:        MicrosoftAjaxWebForms.debug.js
// Assembly:    System.Web.Extensions
// Version:     3.5.0.0
// FileVersion: 3.5.30729.5458
//-----------------------------------------------------------------------=

// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------=

// MicrosoftAjaxWebForms.js
// Microsoft AJAX ASP.NET WebForms Framework.
Type.registerNamespace('Sys.WebForms');
Sys.WebForms.BeginRequestEventArgs =3D function =
Sys$WebForms$BeginRequestEventArgs(request, postBackElement) {
    /// <summary locid=3D"M:J#Sys.WebForms.BeginRequestEventArgs.#ctor" =
/>
    /// <param name=3D"request" type=3D"Sys.Net.WebRequest"></param>
    /// <param name=3D"postBackElement" domElement=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "request", type: Sys.Net.WebRequest},
        {name: "postBackElement", mayBeNull: true, domElement: true}
    ]);
    if (e) throw e;
    Sys.WebForms.BeginRequestEventArgs.initializeBase(this);
    this._request =3D request;
    this._postBackElement =3D postBackElement;
}
    function Sys$WebForms$BeginRequestEventArgs$get_postBackElement() {
        /// <value domElement=3D"true" mayBeNull=3D"true" =
locid=3D"P:J#Sys.WebForms.BeginRequestEventArgs.postBackElement"></value>=

        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._postBackElement;
    }
    function Sys$WebForms$BeginRequestEventArgs$get_request() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.WebForms.BeginRequestEventArgs.request"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request;
    }
Sys.WebForms.BeginRequestEventArgs.prototype =3D {
    get_postBackElement: =
Sys$WebForms$BeginRequestEventArgs$get_postBackElement,
    get_request: Sys$WebForms$BeginRequestEventArgs$get_request
}
Sys.WebForms.BeginRequestEventArgs.registerClass('Sys.WebForms.BeginReque=
stEventArgs', Sys.EventArgs);
=20
Sys.WebForms.EndRequestEventArgs =3D function =
Sys$WebForms$EndRequestEventArgs(error, dataItems, response) {
    /// <summary locid=3D"M:J#Sys.WebForms.EndRequestEventArgs.#ctor" />
    /// <param name=3D"error" type=3D"Error" mayBeNull=3D"true"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    /// <param name=3D"response" =
type=3D"Sys.Net.WebRequestExecutor"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "error", type: Error, mayBeNull: true},
        {name: "dataItems", type: Object, mayBeNull: true},
        {name: "response", type: Sys.Net.WebRequestExecutor}
    ]);
    if (e) throw e;
    Sys.WebForms.EndRequestEventArgs.initializeBase(this);
    this._errorHandled =3D false;
    this._error =3D error;
    this._dataItems =3D dataItems || new Object();
    this._response =3D response;
}
    function Sys$WebForms$EndRequestEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    }
    function Sys$WebForms$EndRequestEventArgs$get_error() {
        /// <value type=3D"Error" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.error"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._error;
    }
    function Sys$WebForms$EndRequestEventArgs$get_errorHandled() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.errorHandled"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._errorHandled;
    }
    function Sys$WebForms$EndRequestEventArgs$set_errorHandled(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._errorHandled =3D value;
    }
    function Sys$WebForms$EndRequestEventArgs$get_response() {
        /// <value type=3D"Sys.Net.WebRequestExecutor" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.response"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._response;
    }
Sys.WebForms.EndRequestEventArgs.prototype =3D {
    get_dataItems: Sys$WebForms$EndRequestEventArgs$get_dataItems,
    get_error: Sys$WebForms$EndRequestEventArgs$get_error,
    get_errorHandled: Sys$WebForms$EndRequestEventArgs$get_errorHandled,
    set_errorHandled: Sys$WebForms$EndRequestEventArgs$set_errorHandled,
    get_response: Sys$WebForms$EndRequestEventArgs$get_response
}
Sys.WebForms.EndRequestEventArgs.registerClass('Sys.WebForms.EndRequestEv=
entArgs', Sys.EventArgs);
Sys.WebForms.InitializeRequestEventArgs =3D function =
Sys$WebForms$InitializeRequestEventArgs(request, postBackElement) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.InitializeRequestEventArgs.#ctor" />
    /// <param name=3D"request" type=3D"Sys.Net.WebRequest"></param>
    /// <param name=3D"postBackElement" domElement=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "request", type: Sys.Net.WebRequest},
        {name: "postBackElement", mayBeNull: true, domElement: true}
    ]);
    if (e) throw e;
    Sys.WebForms.InitializeRequestEventArgs.initializeBase(this);
    this._request =3D request;
    this._postBackElement =3D postBackElement;
}
    function =
Sys$WebForms$InitializeRequestEventArgs$get_postBackElement() {
        /// <value domElement=3D"true" mayBeNull=3D"true" =
locid=3D"P:J#Sys.WebForms.InitializeRequestEventArgs.postBackElement"></v=
alue>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._postBackElement;
    }
    function Sys$WebForms$InitializeRequestEventArgs$get_request() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.WebForms.InitializeRequestEventArgs.request"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request;
    }
Sys.WebForms.InitializeRequestEventArgs.prototype =3D {
    get_postBackElement: =
Sys$WebForms$InitializeRequestEventArgs$get_postBackElement,
    get_request: Sys$WebForms$InitializeRequestEventArgs$get_request
}
Sys.WebForms.InitializeRequestEventArgs.registerClass('Sys.WebForms.Initi=
alizeRequestEventArgs', Sys.CancelEventArgs);
=20
Sys.WebForms.PageLoadedEventArgs =3D function =
Sys$WebForms$PageLoadedEventArgs(panelsUpdated, panelsCreated, =
dataItems) {
    /// <summary locid=3D"M:J#Sys.WebForms.PageLoadedEventArgs.#ctor" />
    /// <param name=3D"panelsUpdated" type=3D"Array"></param>
    /// <param name=3D"panelsCreated" type=3D"Array"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "panelsUpdated", type: Array},
        {name: "panelsCreated", type: Array},
        {name: "dataItems", type: Object, mayBeNull: true}
    ]);
    if (e) throw e;
    Sys.WebForms.PageLoadedEventArgs.initializeBase(this);
    this._panelsUpdated =3D panelsUpdated;
    this._panelsCreated =3D panelsCreated;
    this._dataItems =3D dataItems || new Object();
}
    function Sys$WebForms$PageLoadedEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    }
    function Sys$WebForms$PageLoadedEventArgs$get_panelsCreated() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.panelsCreated"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsCreated;
    }
    function Sys$WebForms$PageLoadedEventArgs$get_panelsUpdated() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.panelsUpdated"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsUpdated;
    }
Sys.WebForms.PageLoadedEventArgs.prototype =3D {
    get_dataItems: Sys$WebForms$PageLoadedEventArgs$get_dataItems,
    get_panelsCreated: =
Sys$WebForms$PageLoadedEventArgs$get_panelsCreated,
    get_panelsUpdated: =
Sys$WebForms$PageLoadedEventArgs$get_panelsUpdated
}
Sys.WebForms.PageLoadedEventArgs.registerClass('Sys.WebForms.PageLoadedEv=
entArgs', Sys.EventArgs);
Sys.WebForms.PageLoadingEventArgs =3D function =
Sys$WebForms$PageLoadingEventArgs(panelsUpdating, panelsDeleting, =
dataItems) {
    /// <summary locid=3D"M:J#Sys.WebForms.PageLoadingEventArgs.#ctor" =
/>
    /// <param name=3D"panelsUpdating" type=3D"Array"></param>
    /// <param name=3D"panelsDeleting" type=3D"Array"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "panelsUpdating", type: Array},
        {name: "panelsDeleting", type: Array},
        {name: "dataItems", type: Object, mayBeNull: true}
    ]);
    if (e) throw e;
    Sys.WebForms.PageLoadingEventArgs.initializeBase(this);
    this._panelsUpdating =3D panelsUpdating;
    this._panelsDeleting =3D panelsDeleting;
    this._dataItems =3D dataItems || new Object();
}
    function Sys$WebForms$PageLoadingEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    }
    function Sys$WebForms$PageLoadingEventArgs$get_panelsDeleting() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.panelsDeleting"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsDeleting;
    }
    function Sys$WebForms$PageLoadingEventArgs$get_panelsUpdating() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.panelsUpdating"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsUpdating;
    }
Sys.WebForms.PageLoadingEventArgs.prototype =3D {
    get_dataItems: Sys$WebForms$PageLoadingEventArgs$get_dataItems,
    get_panelsDeleting: =
Sys$WebForms$PageLoadingEventArgs$get_panelsDeleting,
    get_panelsUpdating: =
Sys$WebForms$PageLoadingEventArgs$get_panelsUpdating
}
Sys.WebForms.PageLoadingEventArgs.registerClass('Sys.WebForms.PageLoading=
EventArgs', Sys.EventArgs);
=20
Sys.WebForms.PageRequestManager =3D function =
Sys$WebForms$PageRequestManager() {
    this._form =3D null;
    this._activeDefaultButton =3D null;
    this._activeDefaultButtonClicked =3D false;
    this._updatePanelIDs =3D null;
    this._updatePanelClientIDs =3D null;
    this._updatePanelHasChildrenAsTriggers =3D null;
    this._asyncPostBackControlIDs =3D null;
    this._asyncPostBackControlClientIDs =3D null;
    this._postBackControlIDs =3D null;
    this._postBackControlClientIDs =3D null;
    this._scriptManagerID =3D null;
    this._pageLoadedHandler =3D null;
    this._additionalInput =3D null;
    this._onsubmit =3D null;
    this._onSubmitStatements =3D [];
    this._originalDoPostBack =3D null;
    this._originalDoPostBackWithOptions =3D null;
    this._originalFireDefaultButton =3D null;
    this._originalDoCallback =3D null;
    this._isCrossPost =3D false;
    this._postBackSettings =3D null;
    this._request =3D null;
    this._onFormSubmitHandler =3D null;
    this._onFormElementClickHandler =3D null;
    this._onWindowUnloadHandler =3D null;
    this._asyncPostBackTimeout =3D null;
    this._controlIDToFocus =3D null;
    this._scrollPosition =3D null;
    this._processingRequest =3D false;
    this._scriptDisposes =3D {};
   =20
    this._transientFields =3D ["__VIEWSTATEENCRYPTED", =
"__VIEWSTATEFIELDCOUNT"];
}
    function Sys$WebForms$PageRequestManager$_get_eventHandlerList() {
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$WebForms$PageRequestManager$get_isInAsyncPostBack() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.WebForms.PageRequestManager.isInAsyncPostBack"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request !=3D=3D null;
    }
    function Sys$WebForms$PageRequestManager$add_beginRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.beginRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("beginRequest", =
handler);
    }
    function =
Sys$WebForms$PageRequestManager$remove_beginRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("beginRequest", =
handler);
    }
    function Sys$WebForms$PageRequestManager$add_endRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.endRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("endRequest", handler);
    }
    function Sys$WebForms$PageRequestManager$remove_endRequest(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("endRequest", =
handler);
    }
    function =
Sys$WebForms$PageRequestManager$add_initializeRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.initializeRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("initializeRequest", =
handler);
    }
    function =
Sys$WebForms$PageRequestManager$remove_initializeRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("initializeRequest", =
handler);
    }
    function Sys$WebForms$PageRequestManager$add_pageLoaded(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.pageLoaded" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("pageLoaded", handler);
    }
    function Sys$WebForms$PageRequestManager$remove_pageLoaded(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("pageLoaded", =
handler);
    }
    function Sys$WebForms$PageRequestManager$add_pageLoading(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.pageLoading" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("pageLoading", handler);
    }
    function Sys$WebForms$PageRequestManager$remove_pageLoading(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("pageLoading", =
handler);
    }
    function Sys$WebForms$PageRequestManager$abortPostBack() {
        if (!this._processingRequest && this._request) {
            this._request.get_executor().abort();
            this._request =3D null;
        }
    }
    function Sys$WebForms$PageRequestManager$_cancelPendingCallbacks() {
        for (var i =3D 0, l =3D window.__pendingCallbacks.length; i < l; =
i++) {
            var callback =3D window.__pendingCallbacks[i];
            if (callback) {
                if (!callback.async) {
                    window.__synchronousCallBackIndex =3D -1;
                }
                window.__pendingCallbacks[i] =3D null;
                var callbackFrameID =3D "__CALLBACKFRAME" + i;
                var xmlRequestFrame =3D =
document.getElementById(callbackFrameID);
                if (xmlRequestFrame) {
                    =
xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
                }
            }
        }
    }
    function =
Sys$WebForms$PageRequestManager$_commitControls(updatePanelData, =
asyncPostBackTimeout) {
        if (updatePanelData) {
            this._updatePanelIDs =3D updatePanelData.updatePanelIDs;
            this._updatePanelClientIDs =3D =
updatePanelData.updatePanelClientIDs;
            this._updatePanelHasChildrenAsTriggers =3D =
updatePanelData.updatePanelHasChildrenAsTriggers;
            this._asyncPostBackControlIDs =3D =
updatePanelData.asyncPostBackControlIDs;
            this._asyncPostBackControlClientIDs =3D =
updatePanelData.asyncPostBackControlClientIDs;
            this._postBackControlIDs =3D =
updatePanelData.postBackControlIDs;
            this._postBackControlClientIDs =3D =
updatePanelData.postBackControlClientIDs;
        }
        if (typeof(asyncPostBackTimeout) !=3D=3D 'undefined' && =
asyncPostBackTimeout !=3D=3D null) {
            this._asyncPostBackTimeout =3D asyncPostBackTimeout * 1000;
        }
    }
    function Sys$WebForms$PageRequestManager$_createHiddenField(id, =
value) {
        var container, field =3D document.getElementById(id);
        if (field) {
            if (!field._isContained) {
                field.parentNode.removeChild(field);
            }
            else {
                container =3D field.parentNode;
            }
        }
        if (!container) {
            container =3D document.createElement('span');
            container.style.cssText =3D "display:none !important";
            this._form.appendChild(container);
        }
        container.innerHTML =3D "<input type=3D'hidden' />";
        field =3D container.childNodes[0];
        field._isContained =3D true;
        field.id =3D field.name =3D id;
        field.value =3D value;
    }
    function =
Sys$WebForms$PageRequestManager$_createPageRequestManagerTimeoutError() =
{
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerTimeoutException: " + =
Sys.WebForms.Res.PRM_TimeoutError;
        var e =3D Error.create(displayMessage, {name: =
'Sys.WebForms.PageRequestManagerTimeoutException'});
        e.popStackFrame();
        return e;
    }
    function =
Sys$WebForms$PageRequestManager$_createPageRequestManagerServerError(http=
StatusCode, message) {
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerServerErrorException: " +
            (message || String.format(Sys.WebForms.Res.PRM_ServerError, =
httpStatusCode));
        var e =3D Error.create(displayMessage, {
            name: 'Sys.WebForms.PageRequestManagerServerErrorException',
            httpStatusCode: httpStatusCode
        });
        e.popStackFrame();
        return e;
    }
    function =
Sys$WebForms$PageRequestManager$_createPageRequestManagerParserError(pars=
erErrorMessage) {
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerParserErrorException: " + =
String.format(Sys.WebForms.Res.PRM_ParserError, parserErrorMessage);
        var e =3D Error.create(displayMessage, {name: =
'Sys.WebForms.PageRequestManagerParserErrorException'});
        e.popStackFrame();
        return e;
    }
    function =
Sys$WebForms$PageRequestManager$_createPostBackSettings(async, panelID, =
sourceElement) {
        return { async:async, panelID:panelID, =
sourceElement:sourceElement };
    }
    function Sys$WebForms$PageRequestManager$_convertToClientIDs(source, =
destinationIDs, destinationClientIDs) {
        if (source) {
            for (var i =3D 0, l =3D source.length; i < l; i++) {
                Array.add(destinationIDs, source[i]);
                Array.add(destinationClientIDs, =
this._uniqueIDToClientID(source[i]));
            }
        }
    }
    function Sys$WebForms$PageRequestManager$_destroyTree(element) {
        if (element.nodeType =3D=3D=3D 1) {
            var childNodes =3D element.childNodes;
            for (var i =3D childNodes.length - 1; i >=3D 0; i--) {
                var node =3D childNodes[i];
                if (node.nodeType =3D=3D=3D 1) {
                    if (node.dispose && typeof(node.dispose) =3D=3D=3D =
"function") {
                        node.dispose();
                    }
                    else if (node.control && =
typeof(node.control.dispose) =3D=3D=3D "function") {
                        node.control.dispose();
                    }
                    var behaviors =3D =
Sys.UI.Behavior.getBehaviors(node);
                    for (var j =3D behaviors.length - 1; j >=3D 0; j--) =
{
                        behaviors[j].dispose();
                    }
                    this._destroyTree(node);
                }
            }
        }
    }
    function Sys$WebForms$PageRequestManager$dispose() {
        if (this._form) {
            Sys.UI.DomEvent.removeHandler(this._form, 'submit', =
this._onFormSubmitHandler);
            Sys.UI.DomEvent.removeHandler(this._form, 'click', =
this._onFormElementClickHandler);
            Sys.UI.DomEvent.removeHandler(window, 'unload', =
this._onWindowUnloadHandler);
            Sys.UI.DomEvent.removeHandler(window, 'load', =
this._pageLoadedHandler);
        }
        if (this._originalDoPostBack) {
            window.__doPostBack =3D this._originalDoPostBack;
            this._originalDoPostBack =3D null;
        }
        if (this._originalDoPostBackWithOptions) {
            window.WebForm_DoPostBackWithOptions =3D =
this._originalDoPostBackWithOptions;
            this._originalDoPostBackWithOptions =3D null;
        }
        if (this._originalFireDefaultButton) {
            window.WebForm_FireDefaultButton =3D =
this._originalFireDefaultButton;
            this._originalFireDefaultButton =3D null;
        }
        if (this._originalDoCallback) {
            window.WebForm_DoCallback =3D this._originalDoCallback;
            this._originalDoCallback =3D null;
        }
        this._form =3D null;
        this._updatePanelIDs =3D null;
        this._updatePanelClientIDs =3D null;
        this._asyncPostBackControlIDs =3D null;
        this._asyncPostBackControlClientIDs =3D null;
        this._postBackControlIDs =3D null;
        this._postBackControlClientIDs =3D null;
        this._asyncPostBackTimeout =3D null;
        this._scrollPosition =3D null;
    }
    function Sys$WebForms$PageRequestManager$_doCallback(eventTarget, =
eventArgument, eventCallback, context, errorCallback, useAsync) {
        if (!this.get_isInAsyncPostBack()) {
            this._originalDoCallback(eventTarget, eventArgument, =
eventCallback, context, errorCallback, useAsync);
        }
    }
    function Sys$WebForms$PageRequestManager$_doPostBack(eventTarget, =
eventArgument) {
        this._additionalInput =3D null;
        var form =3D this._form;
        if ((eventTarget =3D=3D=3D null) || (typeof(eventTarget) =
=3D=3D=3D "undefined") || (this._isCrossPost)) {
            this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
            this._isCrossPost =3D false;
        }
        else {
            var clientID =3D this._uniqueIDToClientID(eventTarget);
            var postBackElement =3D document.getElementById(clientID);
            if (!postBackElement) {
                if (Array.contains(this._asyncPostBackControlIDs, =
eventTarget)) {
                    this._postBackSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
eventTarget, null);
                }
                else {
                    if (Array.contains(this._postBackControlIDs, =
eventTarget)) {
                        this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
                    }
                    else {
                        var nearestUniqueIDMatch =3D =
this._findNearestElement(eventTarget);
                        if (nearestUniqueIDMatch) {
                            this._postBackSettings =3D =
this._getPostBackSettings(nearestUniqueIDMatch, eventTarget);
                        }
                        else {
                            this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
                        }
                    }
                }
            }
            else {
                this._postBackSettings =3D =
this._getPostBackSettings(postBackElement, eventTarget);
            }
        }
        if (!this._postBackSettings.async) {
            form.onsubmit =3D this._onsubmit;
            this._originalDoPostBack(eventTarget, eventArgument);
            form.onsubmit =3D null;
            return;
        }
        form.__EVENTTARGET.value =3D eventTarget;
        form.__EVENTARGUMENT.value =3D eventArgument;
        this._onFormSubmit();
    }
    function =
Sys$WebForms$PageRequestManager$_doPostBackWithOptions(options) {
        this._isCrossPost =3D options && options.actionUrl;
        this._originalDoPostBackWithOptions(options);
    }
    function Sys$WebForms$PageRequestManager$_elementContains(container, =
element) {
        while (element) {
            if (element =3D=3D=3D container) {
                return true;
            }
            element =3D element.parentNode;
        }
        return false;
    }
    function Sys$WebForms$PageRequestManager$_endPostBack(error, =
executor, data) {
        if (this._request =3D=3D=3D executor.get_webRequest()) {
            this._processingRequest =3D false;
            this._additionalInput =3D null;
            this._request =3D null;
        }
        var handler =3D =
this._get_eventHandlerList().getHandler("endRequest");
        var errorHandled =3D false;
        if (handler) {
            var eventArgs =3D new =
Sys.WebForms.EndRequestEventArgs(error, data ? data.dataItems : {}, =
executor);
            handler(this, eventArgs);
            errorHandled =3D eventArgs.get_errorHandled();
        }
        if (error && !errorHandled) {
            throw error;
        }
    }
    function =
Sys$WebForms$PageRequestManager$_findNearestElement(uniqueID) {
        while (uniqueID.length > 0) {
            var clientID =3D this._uniqueIDToClientID(uniqueID);
            var element =3D document.getElementById(clientID);
            if (element) {
                return element;
            }
            var indexOfLastDollar =3D uniqueID.lastIndexOf('$');
            if (indexOfLastDollar =3D=3D=3D -1) {
                return null;
            }
            uniqueID =3D uniqueID.substring(0, indexOfLastDollar);
        }
        return null;
    }
    function Sys$WebForms$PageRequestManager$_findText(text, location) {
        var startIndex =3D Math.max(0, location - 20);
        var endIndex =3D Math.min(text.length, location + 20);
        return text.substring(startIndex, endIndex);
    }
    function Sys$WebForms$PageRequestManager$_fireDefaultButton(event, =
target) {
        if (event.keyCode =3D=3D=3D 13) {
            var src =3D event.srcElement || event.target;
            if (!src || (src.tagName.toLowerCase() !=3D=3D "textarea")) =
{
                var defaultButton =3D document.getElementById(target);
                if (defaultButton && (typeof(defaultButton.click) =
!=3D=3D "undefined")) {
                   =20
                   =20
                    this._activeDefaultButton =3D defaultButton;
                    this._activeDefaultButtonClicked =3D false;
                    try {
                        defaultButton.click();
                    }
                    finally {
                        this._activeDefaultButton =3D null;
                    }
                   =20
                   =20
                    event.cancelBubble =3D true;
                    if (typeof(event.stopPropagation) =3D=3D=3D =
"function") {
                        event.stopPropagation();
                    }
                    return false;
                }
            }
        }
        return true;
    }
    function =
Sys$WebForms$PageRequestManager$_getPageLoadedEventArgs(initialLoad, =
data) {
        var updated =3D [];
        var created =3D [];
        var upData =3D data ? data.updatePanelData : null;
        var newIDs, childIDs, refreshedIDs;
        if (!upData) {
            newIDs =3D this._updatePanelIDs;
            childIDs =3D null;
            refreshedIDs =3D null;
        }
        else {
            newIDs =3D upData.updatePanelIDs;
            childIDs =3D upData.childUpdatePanelIDs;
            refreshedIDs =3D upData.panelsToRefreshIDs;
        }
        var i, l;
        if (refreshedIDs) {
            for (i =3D 0, l =3D refreshedIDs.length; i < l; i++) {
                Array.add(updated, =
document.getElementById(this._uniqueIDToClientID(refreshedIDs[i])));
            }
        }
        for (i =3D 0, l =3D newIDs.length; i < l; i++) {
            if (initialLoad || Array.indexOf(childIDs, newIDs[i]) =
!=3D=3D -1) {
                Array.add(created, =
document.getElementById(this._uniqueIDToClientID(newIDs[i])));
            }
        }
        return new Sys.WebForms.PageLoadedEventArgs(updated, created, =
data ? data.dataItems : {});
    }
    function =
Sys$WebForms$PageRequestManager$_getPageLoadingEventArgs(data) {
        var updated =3D [];
        var deleted =3D [];
        var upData =3D data.updatePanelData;
        var oldIDs =3D upData.oldUpdatePanelIDs;
        var newIDs =3D upData.updatePanelIDs;
        var childIDs =3D upData.childUpdatePanelIDs;
        var refreshedIDs =3D upData.panelsToRefreshIDs;
        var i, l;
        for (i =3D 0, l =3D refreshedIDs.length; i < l; i++) {
            Array.add(updated, =
document.getElementById(this._uniqueIDToClientID(refreshedIDs[i])));
        }
        for (i =3D 0, l =3D oldIDs.length; i < l; i++) {
            if (Array.indexOf(refreshedIDs, oldIDs[i]) =3D=3D=3D -1 &&
                (Array.indexOf(newIDs, oldIDs[i]) =3D=3D=3D -1 || =
Array.indexOf(childIDs, oldIDs[i]) > -1)) {
                Array.add(deleted, =
document.getElementById(this._uniqueIDToClientID(oldIDs[i])));
            }
        }
        return new Sys.WebForms.PageLoadingEventArgs(updated, deleted, =
data.dataItems);
    }
    function =
Sys$WebForms$PageRequestManager$_getPostBackSettings(element, =
elementUniqueID) {
        var originalElement =3D element;
        var proposedSettings =3D null;
        while (element) {
            if (element.id) {
                if (!proposedSettings && =
Array.contains(this._asyncPostBackControlClientIDs, element.id)) {
                    proposedSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                }
                else {
                    if (!proposedSettings && =
Array.contains(this._postBackControlClientIDs, element.id)) {
                        return this._createPostBackSettings(false, null, =
null);
                    }
                    else {
                        var indexOfPanel =3D =
Array.indexOf(this._updatePanelClientIDs, element.id);
                        if (indexOfPanel !=3D=3D -1) {
                            if =
(this._updatePanelHasChildrenAsTriggers[indexOfPanel]) {
                                return =
this._createPostBackSettings(true, this._updatePanelIDs[indexOfPanel] + =
'|' + elementUniqueID, originalElement);
                            }
                            else {
                                return =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                            }
                        }
                    }
                }
                if (!proposedSettings && =
this._matchesParentIDInList(element.id, =
this._asyncPostBackControlClientIDs)) {
                    proposedSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                }
                else {
                    if (!proposedSettings && =
this._matchesParentIDInList(element.id, this._postBackControlClientIDs)) =
{
                        return this._createPostBackSettings(false, null, =
null);
                    }
                }
            }
            element =3D element.parentNode;
        }
        if (!proposedSettings) {
            return this._createPostBackSettings(false, null, null);
        }
        else {
            return proposedSettings;
        }
    }
    function Sys$WebForms$PageRequestManager$_getScrollPosition() {
        var d =3D document.documentElement;
        if (d && (this._validPosition(d.scrollLeft) || =
this._validPosition(d.scrollTop))) {
            return {
                x: d.scrollLeft,
                y: d.scrollTop
            };
        }
        else {
            d =3D document.body;
            if (d && (this._validPosition(d.scrollLeft) || =
this._validPosition(d.scrollTop))) {
                return {
                    x: d.scrollLeft,
                    y: d.scrollTop
                };
            }
            else {
                if (this._validPosition(window.pageXOffset) || =
this._validPosition(window.pageYOffset)) {
                    return {
                        x: window.pageXOffset,
                        y: window.pageYOffset
                    };
                }
                else {
                    return {
                        x: 0,
                        y: 0
                    };
                }
            }
        }
    }
    function =
Sys$WebForms$PageRequestManager$_initializeInternal(scriptManagerID, =
formElement) {
        if (this._prmInitialized) {
            throw =
Error.invalidOperation(Sys.WebForms.Res.PRM_CannotRegisterTwice);
        }
        this._prmInitialized =3D true;
        this._scriptManagerID =3D scriptManagerID;
        this._form =3D formElement;
        this._onsubmit =3D this._form.onsubmit;
        this._form.onsubmit =3D null;
        this._onFormSubmitHandler =3D Function.createDelegate(this, =
this._onFormSubmit);
        this._onFormElementClickHandler =3D =
Function.createDelegate(this, this._onFormElementClick);
        this._onWindowUnloadHandler =3D Function.createDelegate(this, =
this._onWindowUnload);
        Sys.UI.DomEvent.addHandler(this._form, 'submit', =
this._onFormSubmitHandler);
        Sys.UI.DomEvent.addHandler(this._form, 'click', =
this._onFormElementClickHandler);
        Sys.UI.DomEvent.addHandler(window, 'unload', =
this._onWindowUnloadHandler);
        this._originalDoPostBack =3D window.__doPostBack;
        if (this._originalDoPostBack) {
            window.__doPostBack =3D Function.createDelegate(this, =
this._doPostBack);
        }
        this._originalDoPostBackWithOptions =3D =
window.WebForm_DoPostBackWithOptions;
        if (this._originalDoPostBackWithOptions) {
            window.WebForm_DoPostBackWithOptions =3D =
Function.createDelegate(this, this._doPostBackWithOptions);
        }
        this._originalFireDefaultButton =3D =
window.WebForm_FireDefaultButton;
        if (this._originalFireDefaultButton) {
            window.WebForm_FireDefaultButton =3D =
Function.createDelegate(this, this._fireDefaultButton);
        }
        this._originalDoCallback =3D window.WebForm_DoCallback;
        if (this._originalDoCallback) {
            window.WebForm_DoCallback =3D Function.createDelegate(this, =
this._doCallback);
        }
        this._pageLoadedHandler =3D Function.createDelegate(this, =
this._pageLoadedInitialLoad);
        Sys.UI.DomEvent.addHandler(window, 'load', =
this._pageLoadedHandler);
    }
    function =
Sys$WebForms$PageRequestManager$_matchesParentIDInList(clientID, =
parentIDList) {
        for (var i =3D 0, l =3D parentIDList.length; i < l; i++) {
            if (clientID.startsWith(parentIDList[i] + "_")) {
                return true;
            }
        }
        return false;
    }
    function =
Sys$WebForms$PageRequestManager$_onFormElementActive(element, offsetX, =
offsetY) {
        if (element.disabled) {
            return;
        }
        this._postBackSettings =3D this._getPostBackSettings(element, =
element.name);
        if (element.name) {
            var tagName =3D element.tagName.toUpperCase();
            if (tagName =3D=3D=3D 'INPUT') {
                var type =3D element.type;
                if (type =3D=3D=3D 'submit') {
                    this._additionalInput =3D =
encodeURIComponent(element.name) + '=3D' + =
encodeURIComponent(element.value);
                }
                else if (type =3D=3D=3D 'image') {
                    this._additionalInput =3D =
encodeURIComponent(element.name) + '.x=3D' + offsetX + '&' + =
encodeURIComponent(element.name) + '.y=3D' + offsetY;
                }
            }
            else if ((tagName =3D=3D=3D 'BUTTON') && =
(element.name.length !=3D=3D 0) && (element.type =3D=3D=3D 'submit')) {
                this._additionalInput =3D =
encodeURIComponent(element.name) + '=3D' + =
encodeURIComponent(element.value);
            }
        }
    }
    function Sys$WebForms$PageRequestManager$_onFormElementClick(evt) {
        this._activeDefaultButtonClicked =3D (evt.target =3D=3D=3D =
this._activeDefaultButton);
        this._onFormElementActive(evt.target, evt.offsetX, evt.offsetY);
    }
    function Sys$WebForms$PageRequestManager$_onFormSubmit(evt) {
        var continueSubmit =3D true;
        var isCrossPost =3D this._isCrossPost;
        this._isCrossPost =3D false;
        var i, l;
        if (this._onsubmit) {
            continueSubmit =3D this._onsubmit();
        }
        if (continueSubmit) {
            for (i =3D 0, l =3D this._onSubmitStatements.length; i < l; =
i++) {
                if (!this._onSubmitStatements[i]()) {
                    continueSubmit =3D false;
                    break;
                }
            }
        }
        if (!continueSubmit) {
            if (evt) {
                evt.preventDefault();
            }
            return;
        }
        var form =3D this._form;
        if (isCrossPost) {
            return;
        }
        if (this._activeDefaultButton && =
!this._activeDefaultButtonClicked) {
            this._onFormElementActive(this._activeDefaultButton, 0, 0);
        }
        if (!this._postBackSettings.async) {
            return;
        }
        var formBody =3D new Sys.StringBuilder();
        formBody.append(encodeURIComponent(this._scriptManagerID) + =
'=3D' + encodeURIComponent(this._postBackSettings.panelID) + '&');
        var count =3D form.elements.length;
        for (i =3D 0; i < count; i++) {
            var element =3D form.elements[i];
            var name =3D element.name;
            if (typeof(name) =3D=3D=3D "undefined" || (name =3D=3D=3D =
null) || (name.length =3D=3D=3D 0) || (name =3D=3D=3D =
this._scriptManagerID)) {
                continue;
            }
            var tagName =3D element.tagName.toUpperCase();
            if (tagName =3D=3D=3D 'INPUT') {
                var type =3D element.type;
                if ((type =3D=3D=3D 'text') ||
                    (type =3D=3D=3D 'password') ||
                    (type =3D=3D=3D 'hidden') ||
                    (((type =3D=3D=3D 'checkbox') || (type =3D=3D=3D =
'radio')) && element.checked)) {
                    formBody.append(encodeURIComponent(name));
                    formBody.append('=3D');
                    formBody.append(encodeURIComponent(element.value));
                    formBody.append('&');
                }
            }
            else if (tagName =3D=3D=3D 'SELECT') {
                var optionCount =3D element.options.length;
                for (var j =3D 0; j < optionCount; j++) {
                    var option =3D element.options[j];
                    if (option.selected) {
                        formBody.append(encodeURIComponent(name));
                        formBody.append('=3D');
                        =
formBody.append(encodeURIComponent(option.value));
                        formBody.append('&');
                    }
                }
            }
            else if (tagName =3D=3D=3D 'TEXTAREA') {
                formBody.append(encodeURIComponent(name));
                formBody.append('=3D');
                formBody.append(encodeURIComponent(element.value));
                formBody.append('&');
            }
        }
        formBody.append("__ASYNCPOST=3Dtrue&");
        if (this._additionalInput) {
            formBody.append(this._additionalInput);
            this._additionalInput =3D null;
        }
       =20
        var request =3D new Sys.Net.WebRequest();
        var action =3D form.action;
        if (Sys.Browser.agent =3D=3D=3D Sys.Browser.InternetExplorer) {
            var fragmentIndex =3D action.indexOf('#');
            if (fragmentIndex !=3D=3D -1) {
                action =3D action.substr(0, fragmentIndex);
            }
            var queryIndex =3D action.indexOf('?');
            if (queryIndex !=3D=3D -1) {
                var path =3D action.substr(0, queryIndex);
                if (path.indexOf("%") =3D=3D=3D -1) {
                    action =3D encodeURI(path) + =
action.substr(queryIndex);
                }
            }
            else if (action.indexOf("%") =3D=3D=3D -1) {
                action =3D encodeURI(action);
            }
        }
        request.set_url(action);
        request.get_headers()['X-MicrosoftAjax'] =3D 'Delta=3Dtrue';
        request.get_headers()['Cache-Control'] =3D 'no-cache';
        request.set_timeout(this._asyncPostBackTimeout);
        request.add_completed(Function.createDelegate(this, =
this._onFormSubmitCompleted));
        request.set_body(formBody.toString());
        var eventArgs, handler =3D =
this._get_eventHandlerList().getHandler("initializeRequest");
        if (handler) {
            eventArgs =3D new =
Sys.WebForms.InitializeRequestEventArgs(request, =
this._postBackSettings.sourceElement);
            handler(this, eventArgs);
            continueSubmit =3D !eventArgs.get_cancel();
        }
        if (!continueSubmit) {
            if (evt) {
                evt.preventDefault();
            }
            return;
        }
        this._scrollPosition =3D this._getScrollPosition();
        this.abortPostBack();
        handler =3D =
this._get_eventHandlerList().getHandler("beginRequest");
        if (handler) {
            eventArgs =3D new =
Sys.WebForms.BeginRequestEventArgs(request, =
this._postBackSettings.sourceElement);
            handler(this, eventArgs);
        }
       =20
        if (this._originalDoCallback) {
            this._cancelPendingCallbacks();
        }
        this._request =3D request;
        this._processingRequest =3D false;
        request.invoke();
        if (evt) {
            evt.preventDefault();
        }
    }
    function =
Sys$WebForms$PageRequestManager$_onFormSubmitCompleted(sender, =
eventArgs) {
        this._processingRequest =3D true;
        if (sender.get_timedOut()) {
            =
this._endPostBack(this._createPageRequestManagerTimeoutError(), sender, =
null);
            return;
        }
        if (sender.get_aborted()) {
            this._endPostBack(null, sender, null);
            return;
        }
        if (!this._request || (sender.get_webRequest() !=3D=3D =
this._request)) {
            return;
        }
        if (sender.get_statusCode() !=3D=3D 200) {
            =
this._endPostBack(this._createPageRequestManagerServerError(sender.get_st=
atusCode()), sender, null);
            return;
        }
        var data =3D this._parseDelta(sender);
        if (!data) return;
       =20
        var i, l;
        if (data.asyncPostBackControlIDsNode && =
data.postBackControlIDsNode &&
            data.updatePanelIDsNode && data.panelsToRefreshNode && =
data.childUpdatePanelIDsNode) {
           =20
            var oldUpdatePanelIDs =3D this._updatePanelIDs;
            var childUpdatePanelIDsString =3D =
data.childUpdatePanelIDsNode.content;
            var childUpdatePanelIDs =3D childUpdatePanelIDsString.length =
? childUpdatePanelIDsString.split(',') : [];
            var asyncPostBackControlIDsArray =3D =
this._splitNodeIntoArray(data.asyncPostBackControlIDsNode);
            var postBackControlIDsArray =3D =
this._splitNodeIntoArray(data.postBackControlIDsNode);
            var updatePanelIDsArray =3D =
this._splitNodeIntoArray(data.updatePanelIDsNode);
            var panelsToRefreshIDs =3D =
this._splitNodeIntoArray(data.panelsToRefreshNode);
            for (i =3D 0, l =3D panelsToRefreshIDs.length; i < l; i++) {
                var panelClientID =3D =
this._uniqueIDToClientID(panelsToRefreshIDs[i]);
                if (!document.getElementById(panelClientID)) {
                    =
this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P=
RM_MissingPanel, panelClientID)), sender, data);
                    return;
                }
            }
           =20
            var updatePanelData =3D this._processUpdatePanelArrays(
                updatePanelIDsArray,
                asyncPostBackControlIDsArray,
                postBackControlIDsArray);
            updatePanelData.oldUpdatePanelIDs =3D oldUpdatePanelIDs;
            updatePanelData.childUpdatePanelIDs =3D childUpdatePanelIDs;
            updatePanelData.panelsToRefreshIDs =3D panelsToRefreshIDs;
            data.updatePanelData =3D updatePanelData;
        }
        data.dataItems =3D {};
        var node;
        for (i =3D 0, l =3D data.dataItemNodes.length; i < l; i++) {
            node =3D data.dataItemNodes[i];
            data.dataItems[node.id] =3D node.content;
        }
        for (i =3D 0, l =3D data.dataItemJsonNodes.length; i < l; i++) {
            node =3D data.dataItemJsonNodes[i];
            data.dataItems[node.id] =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(node.content);
        }
        var handler =3D =
this._get_eventHandlerList().getHandler("pageLoading");
        if (handler) {
            handler(this, this._getPageLoadingEventArgs(data));
        }
       =20
        Sys._ScriptLoader.readLoadedScripts();
        Sys.Application.beginCreateComponents();
        var scriptLoader =3D Sys._ScriptLoader.getInstance();
        this._queueScripts(scriptLoader, data.scriptBlockNodes, true, =
false);
       =20
        this._processingRequest =3D true;
        scriptLoader.loadScripts(0,
            Function.createDelegate(this, =
Function.createCallback(this._scriptIncludesLoadComplete, data)),
            Function.createDelegate(this, =
Function.createCallback(this._scriptIncludesLoadFailed, data)),
            null);       =20
    }
    function Sys$WebForms$PageRequestManager$_onWindowUnload(evt) {
        this.dispose();
    }
    function Sys$WebForms$PageRequestManager$_pageLoaded(initialLoad, =
data) {
        var handler =3D =
this._get_eventHandlerList().getHandler("pageLoaded");
        if (handler) {
            handler(this, this._getPageLoadedEventArgs(initialLoad, =
data));
        }
        if (!initialLoad) {
            Sys.Application.raiseLoad();
        }
    }
    function Sys$WebForms$PageRequestManager$_pageLoadedInitialLoad(evt) =
{
        this._pageLoaded(true, null);
    }
    function Sys$WebForms$PageRequestManager$_parseDelta(executor) {
        var reply =3D executor.get_responseData();
        var delimiterIndex, len, type, id, content;
        var replyIndex =3D 0;
        var parserErrorDetails =3D null;
        var delta =3D [];
        while (replyIndex < reply.length) {
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            len =3D parseInt(reply.substring(replyIndex, =
delimiterIndex), 10);
            if ((len % 1) !=3D=3D 0) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            replyIndex =3D delimiterIndex + 1;
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            type =3D reply.substring(replyIndex, delimiterIndex);
            replyIndex =3D delimiterIndex + 1;
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            id =3D reply.substring(replyIndex, delimiterIndex);
            replyIndex =3D delimiterIndex + 1;
            if ((replyIndex + len) >=3D reply.length) {
                parserErrorDetails =3D this._findText(reply, =
reply.length);
                break;
            }
            content =3D reply.substr(replyIndex, len);
            replyIndex +=3D len;
            if (reply.charAt(replyIndex) !=3D=3D '|') {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            replyIndex++;
            Array.add(delta, {type: type, id: id, content: content});
        }
        if (parserErrorDetails) {
            =
this._endPostBack(this._createPageRequestManagerParserError(String.format=
(Sys.WebForms.Res.PRM_ParserErrorDetails, parserErrorDetails)), =
executor, null);
            return null;
        }
        var updatePanelNodes =3D [];
        var hiddenFieldNodes =3D [];
        var arrayDeclarationNodes =3D [];
        var scriptBlockNodes =3D [];
        var scriptStartupNodes =3D [];
        var expandoNodes =3D [];
        var onSubmitNodes =3D [];
        var dataItemNodes =3D [];
        var dataItemJsonNodes =3D [];
        var scriptDisposeNodes =3D [];
        var asyncPostBackControlIDsNode, postBackControlIDsNode,
            updatePanelIDsNode, asyncPostBackTimeoutNode,
            childUpdatePanelIDsNode, panelsToRefreshNode, =
formActionNode;
        for (var i =3D 0, l =3D delta.length; i < l; i++) {
            var deltaNode =3D delta[i];
            switch (deltaNode.type) {
                case "updatePanel":
                    Array.add(updatePanelNodes, deltaNode);
                    break;
                case "hiddenField":
                    Array.add(hiddenFieldNodes, deltaNode);
                    break;
                case "arrayDeclaration":
                    Array.add(arrayDeclarationNodes, deltaNode);
                    break;
                case "scriptBlock":
                    Array.add(scriptBlockNodes, deltaNode);
                    break;
                case "scriptStartupBlock":
                    Array.add(scriptStartupNodes, deltaNode);
                    break;
                case "expando":
                    Array.add(expandoNodes, deltaNode);
                    break;
                case "onSubmit":
                    Array.add(onSubmitNodes, deltaNode);
                    break;
                case "asyncPostBackControlIDs":
                    asyncPostBackControlIDsNode =3D deltaNode;
                    break;
                case "postBackControlIDs":
                    postBackControlIDsNode =3D deltaNode;
                    break;
                case "updatePanelIDs":
                    updatePanelIDsNode =3D deltaNode;
                    break;
                case "asyncPostBackTimeout":
                    asyncPostBackTimeoutNode =3D deltaNode;
                    break;
                case "childUpdatePanelIDs":
                    childUpdatePanelIDsNode =3D deltaNode;
                    break;
                case "panelsToRefreshIDs":
                    panelsToRefreshNode =3D deltaNode;
                    break;
                case "formAction":
                    formActionNode =3D deltaNode;
                    break;
                case "dataItem":
                    Array.add(dataItemNodes, deltaNode);
                    break;
                case "dataItemJson":
                    Array.add(dataItemJsonNodes, deltaNode);
                    break;
                case "scriptDispose":
                    Array.add(scriptDisposeNodes, deltaNode);
                    break;
                case "pageRedirect":
                    if (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) {
                        var anchor =3D document.createElement("a");
                        anchor.style.display =3D 'none';
                        anchor.attachEvent("onclick", cancelBubble);
                        anchor.href =3D deltaNode.content;
                        this._form.parentNode.insertBefore(anchor, =
this._form);
                        anchor.click();
                        anchor.detachEvent("onclick", cancelBubble);
                        this._form.parentNode.removeChild(anchor);
                       =20
                        function cancelBubble(e) {
                            e.cancelBubble =3D true;
                        }
                    }
                    else {
                        window.location.href =3D deltaNode.content;
                    }
                    return;
                case "error":
                    =
this._endPostBack(this._createPageRequestManagerServerError(Number.parseI=
nvariant(deltaNode.id), deltaNode.content), executor, null);
                    return null;
                case "pageTitle":
                    document.title =3D deltaNode.content;
                    break;
                case "focus":
                    this._controlIDToFocus =3D deltaNode.content;
                    break;
                default:
                    =
this._endPostBack(this._createPageRequestManagerParserError(String.format=
(Sys.WebForms.Res.PRM_UnknownToken, deltaNode.type)), executor, null);
                    return null;
            }=20
        }=20
        return {
            executor: executor,
            updatePanelNodes: updatePanelNodes,
            hiddenFieldNodes: hiddenFieldNodes,
            arrayDeclarationNodes: arrayDeclarationNodes,
            scriptBlockNodes: scriptBlockNodes,
            scriptStartupNodes: scriptStartupNodes,
            expandoNodes: expandoNodes,
            onSubmitNodes: onSubmitNodes,
            dataItemNodes: dataItemNodes,
            dataItemJsonNodes: dataItemJsonNodes,
            scriptDisposeNodes: scriptDisposeNodes,
            asyncPostBackControlIDsNode: asyncPostBackControlIDsNode,
            postBackControlIDsNode: postBackControlIDsNode,
            updatePanelIDsNode: updatePanelIDsNode,
            asyncPostBackTimeoutNode: asyncPostBackTimeoutNode,
            childUpdatePanelIDsNode: childUpdatePanelIDsNode,
            panelsToRefreshNode: panelsToRefreshNode,
            formActionNode: formActionNode };
    }
    function =
Sys$WebForms$PageRequestManager$_processUpdatePanelArrays(updatePanelIDs,=
 asyncPostBackControlIDs, postBackControlIDs) {
        var newUpdatePanelIDs;
        var newUpdatePanelClientIDs;
        var newUpdatePanelHasChildrenAsTriggers;
       =20
        if (updatePanelIDs) {
            var l =3D updatePanelIDs.length;
            newUpdatePanelIDs =3D new Array(l);
            newUpdatePanelClientIDs =3D new Array(l);
            newUpdatePanelHasChildrenAsTriggers =3D new Array(l);
           =20
            for (var i =3D 0; i < l; i++) {
                var realPanelID =3D updatePanelIDs[i].substr(1);
                var childrenAsTriggers =3D (updatePanelIDs[i].charAt(0) =
=3D=3D=3D 't');
                newUpdatePanelHasChildrenAsTriggers[i] =3D =
childrenAsTriggers;
                newUpdatePanelIDs[i] =3D realPanelID;
                newUpdatePanelClientIDs[i] =3D =
this._uniqueIDToClientID(realPanelID);
            }
        }
        else {
            newUpdatePanelIDs =3D [];
            newUpdatePanelClientIDs =3D [];
            newUpdatePanelHasChildrenAsTriggers =3D [];
        }
        var newAsyncPostBackControlIDs =3D [];
        var newAsyncPostBackControlClientIDs =3D [];
        this._convertToClientIDs(asyncPostBackControlIDs, =
newAsyncPostBackControlIDs, newAsyncPostBackControlClientIDs);
        var newPostBackControlIDs =3D [];
        var newPostBackControlClientIDs =3D [];
        this._convertToClientIDs(postBackControlIDs, =
newPostBackControlIDs, newPostBackControlClientIDs);
       =20
        return {
            updatePanelIDs: newUpdatePanelIDs,
            updatePanelClientIDs: newUpdatePanelClientIDs,
            updatePanelHasChildrenAsTriggers: =
newUpdatePanelHasChildrenAsTriggers,
            asyncPostBackControlIDs: newAsyncPostBackControlIDs,
            asyncPostBackControlClientIDs: =
newAsyncPostBackControlClientIDs,
            postBackControlIDs: newPostBackControlIDs,
            postBackControlClientIDs: newPostBackControlClientIDs
        };
    }
    function Sys$WebForms$PageRequestManager$_queueScripts(scriptLoader, =
scriptBlockNodes, queueIncludes, queueBlocks) {
       =20
        for (var i =3D 0, l =3D scriptBlockNodes.length; i < l; i++) {
            var scriptBlockType =3D scriptBlockNodes[i].id;
            switch (scriptBlockType) {
                case "ScriptContentNoTags":
                    if (!queueBlocks) {
                        continue;
                    }
                    =
scriptLoader.queueScriptBlock(scriptBlockNodes[i].content);
                    break;
                case "ScriptContentWithTags":
                    var scriptTagAttributes;
                    eval("scriptTagAttributes =3D " + =
scriptBlockNodes[i].content);
                    if (scriptTagAttributes.src) {
                        if (!queueIncludes || =
Sys._ScriptLoader.isScriptLoaded(scriptTagAttributes.src)) {
                            continue;
                        }
                    }
                    else if (!queueBlocks) {
                        continue;
                    }
                    =
scriptLoader.queueCustomScriptTag(scriptTagAttributes);
                    break;
                case "ScriptPath":
                    if (!queueIncludes || =
Sys._ScriptLoader.isScriptLoaded(scriptBlockNodes[i].content)) {
                        continue;
                    }
                    =
scriptLoader.queueScriptReference(scriptBlockNodes[i].content);
                    break;
            }
        }       =20
    }
    function =
Sys$WebForms$PageRequestManager$_registerDisposeScript(panelID, =
disposeScript) {
        if (!this._scriptDisposes[panelID]) {
            this._scriptDisposes[panelID] =3D [disposeScript];
        }
        else {
            Array.add(this._scriptDisposes[panelID], disposeScript);
        }
    }
    function =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadComplete(scriptLoader,=
 data) {
       =20
       =20
        if (data.executor.get_webRequest() !=3D=3D this._request) {
            return;
        }
       =20
        this._commitControls(data.updatePanelData,
            data.asyncPostBackTimeoutNode ? =
data.asyncPostBackTimeoutNode.content : null);
        if (data.formActionNode) {
            this._form.action =3D data.formActionNode.content;
        }
       =20
        var i, l, node;
        for (i =3D 0, l =3D data.updatePanelNodes.length; i < l; i++) {
            node =3D data.updatePanelNodes[i];
            var updatePanelElement =3D document.getElementById(node.id);
            if (!updatePanelElement) {
                =
this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P=
RM_MissingPanel, node.id)), data.executor, data);
                return;
            }
            this._updatePanel(updatePanelElement, node.content);
        }
        for (i =3D 0, l =3D data.scriptDisposeNodes.length; i < l; i++) =
{
            node =3D data.scriptDisposeNodes[i];
            this._registerDisposeScript(node.id, node.content);
        }
        for (i =3D 0, l =3D this._transientFields.length; i < l; i++) {
            var field =3D =
document.getElementById(this._transientFields[i]);
            if (field) {
                var toRemove =3D field._isContained ? field.parentNode : =
field;
                toRemove.parentNode.removeChild(toRemove);
            }
        }
        for (i =3D 0, l =3D data.hiddenFieldNodes.length; i < l; i++) {
            node =3D data.hiddenFieldNodes[i];
            this._createHiddenField(node.id, node.content);
        }
       =20
        if (data.scriptsFailed) {
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(data.scriptsFailed.src, =
data.scriptsFailed.multipleCallbacks);
        }
       =20
        this._queueScripts(scriptLoader, data.scriptBlockNodes, false, =
true);
        var arrayScript =3D '';
        for (i =3D 0, l =3D data.arrayDeclarationNodes.length; i < l; =
i++) {
            node =3D data.arrayDeclarationNodes[i];
            arrayScript +=3D =
"Sys.WebForms.PageRequestManager._addArrayElement('" + node.id + "', " + =
node.content + ");\r\n";
        }
        var expandoScript =3D '';
        for (i =3D 0, l =3D data.expandoNodes.length; i < l; i++) {
            node =3D data.expandoNodes[i];
            expandoScript +=3D node.id + " =3D " + node.content + =
"\r\n";
        }
        if (arrayScript.length) {
            scriptLoader.queueScriptBlock(arrayScript);
        }
        if (expandoScript.length) {
            scriptLoader.queueScriptBlock(expandoScript);
        }
       =20
        this._queueScripts(scriptLoader, data.scriptStartupNodes, true, =
true);
        var onSubmitStatementScript =3D '';
        for (i =3D 0, l =3D data.onSubmitNodes.length; i < l; i++) {
            if (i =3D=3D=3D 0) {
                onSubmitStatementScript =3D =
'Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStateme=
nts, function() {\r\n';
            }
            onSubmitStatementScript +=3D data.onSubmitNodes[i].content + =
"\r\n";
        }
        if (onSubmitStatementScript.length) {
            onSubmitStatementScript +=3D "\r\nreturn true;\r\n});\r\n";
            scriptLoader.queueScriptBlock(onSubmitStatementScript);
        }
        scriptLoader.loadScripts(0,
            Function.createDelegate(this, =
Function.createCallback(this._scriptsLoadComplete, data)), null, null);
    }
    function =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadFailed(scriptLoader, =
scriptElement, multipleCallbacks, data) {
        data.scriptsFailed =3D { src: scriptElement.src, =
multipleCallbacks: multipleCallbacks };
        this._scriptIncludesLoadComplete(scriptLoader, data);
    }
    function =
Sys$WebForms$PageRequestManager$_scriptsLoadComplete(scriptLoader, data) =
{
       =20
       =20
        var response =3D data.executor;
        if (window.__theFormPostData) {
            window.__theFormPostData =3D "";
        }
        if (window.__theFormPostCollection) {
            window.__theFormPostCollection =3D [];
        }
        if (window.WebForm_InitCallback) {
            window.WebForm_InitCallback();
        }
        if (this._scrollPosition) {
            if (window.scrollTo) {
                window.scrollTo(this._scrollPosition.x, =
this._scrollPosition.y);
            }
            this._scrollPosition =3D null;
        }
        Sys.Application.endCreateComponents();
        this._pageLoaded(false, data);
        this._endPostBack(null, response, data);
        if (this._controlIDToFocus) {
            var focusTarget;
            var oldContentEditableSetting;
            if (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) {
                var targetControl =3D $get(this._controlIDToFocus);
                focusTarget =3D targetControl;
                if (targetControl && (!WebForm_CanFocus(targetControl))) =
{
                    focusTarget =3D =
WebForm_FindFirstFocusableChild(targetControl);
                }
                if (focusTarget && (typeof(focusTarget.contentEditable) =
!=3D=3D "undefined")) {
                    oldContentEditableSetting =3D =
focusTarget.contentEditable;
                    focusTarget.contentEditable =3D false;
                }
                else {
                    focusTarget =3D null;
                }
            }
            WebForm_AutoFocus(this._controlIDToFocus);
            if (focusTarget) {
                focusTarget.contentEditable =3D =
oldContentEditableSetting;
            }
            this._controlIDToFocus =3D null;
        }
    }
    function Sys$WebForms$PageRequestManager$_splitNodeIntoArray(node) {
        var str =3D node.content;
        var arr =3D str.length ? str.split(',') : [];
        return arr;
    }
    function =
Sys$WebForms$PageRequestManager$_uniqueIDToClientID(uniqueID) {
        return uniqueID.replace(/\$/g, '_');
    }
    function =
Sys$WebForms$PageRequestManager$_updateControls(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, asyncPostBackTimeout) {
        this._commitControls(
            this._processUpdatePanelArrays(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs),
            asyncPostBackTimeout);
    }
    function =
Sys$WebForms$PageRequestManager$_updatePanel(updatePanelElement, =
rendering) {
        for (var updatePanelID in this._scriptDisposes) {
            if (this._elementContains(updatePanelElement, =
document.getElementById(updatePanelID))) {
                var disposeScripts =3D =
this._scriptDisposes[updatePanelID];
                for (var i =3D 0, l =3D disposeScripts.length; i < l; =
i++) {
                    eval(disposeScripts[i]);
                }
                delete this._scriptDisposes[updatePanelID];
            }
        }
        this._destroyTree(updatePanelElement);
        updatePanelElement.innerHTML =3D rendering;
    }
    function Sys$WebForms$PageRequestManager$_validPosition(position) {
        return (typeof(position) !=3D=3D "undefined") && (position =
!=3D=3D null) && (position !=3D=3D 0);
    }
Sys.WebForms.PageRequestManager.prototype =3D {
    _get_eventHandlerList: =
Sys$WebForms$PageRequestManager$_get_eventHandlerList,
    get_isInAsyncPostBack: =
Sys$WebForms$PageRequestManager$get_isInAsyncPostBack,
    add_beginRequest: Sys$WebForms$PageRequestManager$add_beginRequest,
    remove_beginRequest: =
Sys$WebForms$PageRequestManager$remove_beginRequest,
    add_endRequest: Sys$WebForms$PageRequestManager$add_endRequest,
    remove_endRequest: =
Sys$WebForms$PageRequestManager$remove_endRequest,
    add_initializeRequest: =
Sys$WebForms$PageRequestManager$add_initializeRequest,
    remove_initializeRequest: =
Sys$WebForms$PageRequestManager$remove_initializeRequest,
    add_pageLoaded: Sys$WebForms$PageRequestManager$add_pageLoaded,
    remove_pageLoaded: =
Sys$WebForms$PageRequestManager$remove_pageLoaded,
    add_pageLoading: Sys$WebForms$PageRequestManager$add_pageLoading,
    remove_pageLoading: =
Sys$WebForms$PageRequestManager$remove_pageLoading,
    abortPostBack: Sys$WebForms$PageRequestManager$abortPostBack,
    _cancelPendingCallbacks: =
Sys$WebForms$PageRequestManager$_cancelPendingCallbacks,
    _commitControls: Sys$WebForms$PageRequestManager$_commitControls,
    _createHiddenField: =
Sys$WebForms$PageRequestManager$_createHiddenField,
    _createPageRequestManagerTimeoutError: =
Sys$WebForms$PageRequestManager$_createPageRequestManagerTimeoutError,
    _createPageRequestManagerServerError: =
Sys$WebForms$PageRequestManager$_createPageRequestManagerServerError,
    _createPageRequestManagerParserError: =
Sys$WebForms$PageRequestManager$_createPageRequestManagerParserError,
    _createPostBackSettings: =
Sys$WebForms$PageRequestManager$_createPostBackSettings,
    _convertToClientIDs: =
Sys$WebForms$PageRequestManager$_convertToClientIDs,
    _destroyTree: Sys$WebForms$PageRequestManager$_destroyTree,
    dispose: Sys$WebForms$PageRequestManager$dispose,
    _doCallback: Sys$WebForms$PageRequestManager$_doCallback,
    _doPostBack: Sys$WebForms$PageRequestManager$_doPostBack,
    _doPostBackWithOptions: =
Sys$WebForms$PageRequestManager$_doPostBackWithOptions,
    _elementContains: Sys$WebForms$PageRequestManager$_elementContains,
    _endPostBack: Sys$WebForms$PageRequestManager$_endPostBack,
    _findNearestElement: =
Sys$WebForms$PageRequestManager$_findNearestElement,
    _findText: Sys$WebForms$PageRequestManager$_findText,
    _fireDefaultButton: =
Sys$WebForms$PageRequestManager$_fireDefaultButton,
    _getPageLoadedEventArgs: =
Sys$WebForms$PageRequestManager$_getPageLoadedEventArgs,
    _getPageLoadingEventArgs: =
Sys$WebForms$PageRequestManager$_getPageLoadingEventArgs,
    _getPostBackSettings: =
Sys$WebForms$PageRequestManager$_getPostBackSettings,
    _getScrollPosition: =
Sys$WebForms$PageRequestManager$_getScrollPosition,
    _initializeInternal: =
Sys$WebForms$PageRequestManager$_initializeInternal,
    _matchesParentIDInList: =
Sys$WebForms$PageRequestManager$_matchesParentIDInList,
    _onFormElementActive: =
Sys$WebForms$PageRequestManager$_onFormElementActive,
    _onFormElementClick: =
Sys$WebForms$PageRequestManager$_onFormElementClick,
    _onFormSubmit: Sys$WebForms$PageRequestManager$_onFormSubmit,
    _onFormSubmitCompleted: =
Sys$WebForms$PageRequestManager$_onFormSubmitCompleted,
    _onWindowUnload: Sys$WebForms$PageRequestManager$_onWindowUnload,
    _pageLoaded: Sys$WebForms$PageRequestManager$_pageLoaded,
    _pageLoadedInitialLoad: =
Sys$WebForms$PageRequestManager$_pageLoadedInitialLoad,
    _parseDelta: Sys$WebForms$PageRequestManager$_parseDelta,
    _processUpdatePanelArrays: =
Sys$WebForms$PageRequestManager$_processUpdatePanelArrays,
    _queueScripts: Sys$WebForms$PageRequestManager$_queueScripts,
    _registerDisposeScript: =
Sys$WebForms$PageRequestManager$_registerDisposeScript,
    _scriptIncludesLoadComplete: =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadComplete,
    _scriptIncludesLoadFailed: =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadFailed,
    _scriptsLoadComplete: =
Sys$WebForms$PageRequestManager$_scriptsLoadComplete,
    _splitNodeIntoArray: =
Sys$WebForms$PageRequestManager$_splitNodeIntoArray,
    _uniqueIDToClientID: =
Sys$WebForms$PageRequestManager$_uniqueIDToClientID,
    _updateControls: Sys$WebForms$PageRequestManager$_updateControls,
    _updatePanel: Sys$WebForms$PageRequestManager$_updatePanel,
    _validPosition: Sys$WebForms$PageRequestManager$_validPosition
}
Sys.WebForms.PageRequestManager.getInstance =3D function =
Sys$WebForms$PageRequestManager$getInstance() {
    /// <summary =
locid=3D"M:J#Sys.WebForms.PageRequestManager.getInstance" />
    /// <returns type=3D"Sys.WebForms.PageRequestManager"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    var prm =3D Sys.WebForms.PageRequestManager._instance;
    if (!prm) {
        prm =3D Sys.WebForms.PageRequestManager._instance =3D new =
Sys.WebForms.PageRequestManager();
    }
    return prm;
}
Sys.WebForms.PageRequestManager._addArrayElement =3D function =
Sys$WebForms$PageRequestManager$_addArrayElement(arrayName) {
    if (!window[arrayName]) {
        window[arrayName] =3D new Array();
    }
    for (var i =3D 1, l =3D arguments.length; i < l; i++) {
        Array.add(window[arrayName], arguments[i]);
    }
}
Sys.WebForms.PageRequestManager._initialize =3D function =
Sys$WebForms$PageRequestManager$_initialize(scriptManagerID, =
formElement) {
    =
Sys.WebForms.PageRequestManager.getInstance()._initializeInternal(scriptM=
anagerID, formElement);
}
Sys.WebForms.PageRequestManager.registerClass('Sys.WebForms.PageRequestMa=
nager');
=20
Sys.UI._UpdateProgress =3D function Sys$UI$_UpdateProgress(element) {
    Sys.UI._UpdateProgress.initializeBase(this,[element]);
    this._displayAfter =3D 500;
    this._dynamicLayout =3D true;
    this._associatedUpdatePanelId =3D null;
    this._beginRequestHandlerDelegate =3D null;
    this._startDelegate =3D null;
    this._endRequestHandlerDelegate =3D null;
    this._pageRequestManager =3D null;
    this._timerCookie =3D null;
}
    function Sys$UI$_UpdateProgress$get_displayAfter() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.UI._UpdateProgress.displayAfter"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._displayAfter;
    }
    function Sys$UI$_UpdateProgress$set_displayAfter(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        this._displayAfter =3D value;
    }
    function Sys$UI$_UpdateProgress$get_dynamicLayout() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.UI._UpdateProgress.dynamicLayout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dynamicLayout;
    }
    function Sys$UI$_UpdateProgress$set_dynamicLayout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._dynamicLayout =3D value;
    }
    function Sys$UI$_UpdateProgress$get_associatedUpdatePanelId() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.UI._UpdateProgress.associatedUpdatePanelId"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._associatedUpdatePanelId;
    }
    function Sys$UI$_UpdateProgress$set_associatedUpdatePanelId(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String, mayBeNull: true}]);
        if (e) throw e;
        this._associatedUpdatePanelId =3D value;
    }
    function Sys$UI$_UpdateProgress$_clearTimeout() {
        if (this._timerCookie) {
            window.clearTimeout(this._timerCookie);
            this._timerCookie =3D null;
        }
    }
    function Sys$UI$_UpdateProgress$_handleBeginRequest(sender, arg) {
        var curElem =3D arg.get_postBackElement();
        var showProgress =3D !this._associatedUpdatePanelId;=20
        while (!showProgress && curElem) {
            if (curElem.id && this._associatedUpdatePanelId =3D=3D=3D =
curElem.id) {
                showProgress =3D true;=20
            }
            curElem =3D curElem.parentNode;=20
        }=20
        if (showProgress) {
            this._timerCookie =3D window.setTimeout(this._startDelegate, =
this._displayAfter);
        }
    }
    function Sys$UI$_UpdateProgress$_startRequest() {
        if (this._pageRequestManager.get_isInAsyncPostBack()) {
            if (this._dynamicLayout) this.get_element().style.display =
=3D 'block';
            else this.get_element().style.visibility =3D 'visible';
        }
        this._timerCookie =3D null;
    }
    function Sys$UI$_UpdateProgress$_handleEndRequest(sender, arg) {
        if (this._dynamicLayout) this.get_element().style.display =3D =
'none';
        else this.get_element().style.visibility =3D 'hidden';
        this._clearTimeout();
    }
    function Sys$UI$_UpdateProgress$dispose() {
        if (this._beginRequestHandlerDelegate !=3D=3D null) {
            =
this._pageRequestManager.remove_beginRequest(this._beginRequestHandlerDel=
egate);
            =
this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegat=
e);
            this._beginRequestHandlerDelegate =3D null;
            this._endRequestHandlerDelegate =3D null;
        }
        this._clearTimeout();
        Sys.UI._UpdateProgress.callBaseMethod(this,"dispose");
    }
    function Sys$UI$_UpdateProgress$initialize() {
        Sys.UI._UpdateProgress.callBaseMethod(this, 'initialize');
    	this._beginRequestHandlerDelegate =3D Function.createDelegate(this, =
this._handleBeginRequest);
    	this._endRequestHandlerDelegate =3D Function.createDelegate(this, =
this._handleEndRequest);
    	this._startDelegate =3D Function.createDelegate(this, =
this._startRequest);
    	if (Sys.WebForms && Sys.WebForms.PageRequestManager) {
           this._pageRequestManager =3D =
Sys.WebForms.PageRequestManager.getInstance();
    	}
    	if (this._pageRequestManager !=3D=3D null ) {
    	    =
this._pageRequestManager.add_beginRequest(this._beginRequestHandlerDelega=
te);
    	    =
this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate);=

    	}
    }
Sys.UI._UpdateProgress.prototype =3D {
    get_displayAfter: Sys$UI$_UpdateProgress$get_displayAfter,
    set_displayAfter: Sys$UI$_UpdateProgress$set_displayAfter,
    get_dynamicLayout: Sys$UI$_UpdateProgress$get_dynamicLayout,
    set_dynamicLayout: Sys$UI$_UpdateProgress$set_dynamicLayout,
    get_associatedUpdatePanelId: =
Sys$UI$_UpdateProgress$get_associatedUpdatePanelId,
    set_associatedUpdatePanelId: =
Sys$UI$_UpdateProgress$set_associatedUpdatePanelId,
    _clearTimeout: Sys$UI$_UpdateProgress$_clearTimeout,
    _handleBeginRequest: Sys$UI$_UpdateProgress$_handleBeginRequest,
    _startRequest: Sys$UI$_UpdateProgress$_startRequest,
    _handleEndRequest: Sys$UI$_UpdateProgress$_handleEndRequest,
    dispose: Sys$UI$_UpdateProgress$dispose,
    initialize: Sys$UI$_UpdateProgress$initialize
}
Sys.UI._UpdateProgress.registerClass('Sys.UI._UpdateProgress', =
Sys.UI.Control);


Type.registerNamespace('Sys.WebForms');
Sys.WebForms.Res=3D{
"PRM_MissingPanel":"=E6=89=BE=E4=B8=8D=E5=88=B0 ID =E7=82=BA =
\u0027{0}\u0027 =E7=9A=84 =
UpdatePanel=E3=80=82=E5=A6=82=E6=9E=9C=E5=AE=83=E6=AD=A3=E5=9C=A8=E5=8B=95=
=E6=85=8B=E6=9B=B4=E6=96=B0=EF=BC=8C=E9=82=A3=E9=BA=BC=E5=AE=83=E5=BF=85=E9=
=A0=88=E5=9C=A8=E5=8F=A6=E4=B8=80=E5=80=8B UpdatePanel =
=E5=85=A7=E3=80=82",
"PRM_ServerError":"=E8=99=95=E7=90=86=E4=BC=BA=E6=9C=8D=E5=99=A8=E4=B8=8A=
=E7=9A=84=E8=A6=81=E6=B1=82=E6=99=82=E7=99=BC=E7=94=9F=E6=9C=AA=E7=9F=A5=E7=
=9A=84=E9=8C=AF=E8=AA=A4=E3=80=82=E5=BE=9E=E4=BC=BA=E6=9C=8D=E5=99=A8=E5=82=
=B3=E5=9B=9E=E7=9A=84=E7=8B=80=E6=85=8B=E7=A2=BC=E7=82=BA: {0}",
"PRM_ParserError":"=E7=84=A1=E6=B3=95=E5=89=96=E6=9E=90=E5=BE=9E=E4=BC=BA=
=E6=9C=8D=E5=99=A8=E6=94=B6=E5=88=B0=E7=9A=84=E8=A8=8A=E6=81=AF=E3=80=82"=
,
"PRM_TimeoutError":"=E4=BC=BA=E6=9C=8D=E5=99=A8=E8=A6=81=E6=B1=82=E9=80=BE=
=E6=99=82=E3=80=82",
"PRM_CannotRegisterTwice":"PageRequestManager =
=E4=B8=8D=E5=8F=AF=E5=88=9D=E5=A7=8B=E5=8C=96=E4=B8=80=E6=AC=A1=E4=BB=A5=E4=
=B8=8A=E3=80=82",
"PRM_UnknownToken":"=E6=9C=AA=E7=9F=A5=E7=9A=84=E8=AA=9E=E5=BD=99=E5=9F=BA=
=E5=85=83: \u0027{0}\u0027.",
"PRM_MissingPanel":"=E6=89=BE=E4=B8=8D=E5=88=B0 ID =E7=82=BA =
\u0027{0}\u0027 =E7=9A=84 =
UpdatePanel=E3=80=82=E5=A6=82=E6=9E=9C=E5=AE=83=E6=AD=A3=E5=9C=A8=E5=8B=95=
=E6=85=8B=E6=9B=B4=E6=96=B0=EF=BC=8C=E9=82=A3=E9=BA=BC=E5=AE=83=E5=BF=85=E9=
=A0=88=E5=9C=A8=E5=8F=A6=E4=B8=80=E5=80=8B UpdatePanel =
=E5=85=A7=E3=80=82",
"PRM_ServerError":"=E8=99=95=E7=90=86=E4=BC=BA=E6=9C=8D=E5=99=A8=E4=B8=8A=
=E7=9A=84=E8=A6=81=E6=B1=82=E6=99=82=E7=99=BC=E7=94=9F=E6=9C=AA=E7=9F=A5=E7=
=9A=84=E9=8C=AF=E8=AA=A4=E3=80=82=E5=BE=9E=E4=BC=BA=E6=9C=8D=E5=99=A8=E5=82=
=B3=E5=9B=9E=E7=9A=84=E7=8B=80=E6=85=8B=E7=A2=BC=E7=82=BA: {0}",
"PRM_ParserError":"=E7=84=A1=E6=B3=95=E5=89=96=E6=9E=90=E5=BE=9E=E4=BC=BA=
=E6=9C=8D=E5=99=A8=E6=94=B6=E5=88=B0=E7=9A=84=E8=A8=8A=E6=81=AF=E3=80=82=E9=
=80=99=E9=A0=85=E9=8C=AF=E8=AA=A4=E9=80=9A=E5=B8=B8=E7=9A=84=E5=8E=9F=E5=9B=
=A0=E6=98=AF=E5=9B=9E=E6=87=89=E8=A2=AB =
Response.Write()=E3=80=81=E5=9B=9E=E6=87=89=E7=AF=A9=E9=81=B8=E6=A2=9D=E4=
=BB=B6=E3=80=81HttpModules =
=E7=9A=84=E5=91=BC=E5=8F=AB=E4=BF=AE=E6=94=B9=E4=BA=86=EF=BC=8C=E6=88=96=E6=
=98=AF=E5=B7=B2=E5=95=9F=E7=94=A8=E4=BC=BA=E6=9C=8D=E5=99=A8=E8=BF=BD=E8=B9=
=A4=E3=80=82\r\n=E8=A9=B3=E7=B4=B0=E8=B3=87=E6=96=99: {0}",
"PRM_TimeoutError":"=E4=BC=BA=E6=9C=8D=E5=99=A8=E8=A6=81=E6=B1=82=E9=80=BE=
=E6=99=82=E3=80=82",
"PRM_ParserErrorDetails":"=E5=89=96=E6=9E=90 near \u0027{0}\u0027 =
=E6=99=82=E7=99=BC=E7=94=9F=E9=8C=AF=E8=AA=A4=E3=80=82",
"PRM_CannotRegisterTwice":"PageRequestManager =
=E4=B8=8D=E5=8F=AF=E5=88=9D=E5=A7=8B=E5=8C=96=E4=B8=80=E6=AC=A1=E4=BB=A5=E4=
=B8=8A=E3=80=82"
};

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0000_01CFD991.5B4E09C0--
