From: "Salvo pelo Windows Internet Explorer 8"
Subject: zulupa.com.br - Rede Globo incentiva preconceito contra animais
Date: Sat, 23 Apr 2011 08:51:25 -0300
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01CC0193.A0CC0FD0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7600.16776

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.zulupa.com.br/colunas/pet/2011/4/423/rede-globo-incentiva-preconceito-contra-animais

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" =
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><HTML=20
dir=3D"ltr" lang=3D"pt-br" xml:lang=3D"pt-br"=20
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>	zulupa.com.br - =
Rede Globo=20
incentiva preconceito contra animais</TITLE>
<META name=3D"description" content=3D"Rede Globo incentiva preconceito =
contra animais">
<META name=3D"keywords" content=3D"rede globo, animais, preconceito, =
gato, toxoplasmose, gestantes, gr=C3=A1vidas, doen=C3=A7a, zoonoses, =
colunas, animais de estima=C3=A7=C3=A3o, novela, vacina=C3=A7=C3=A3o">
<META name=3D"robots" content=3D"index,follow">
<META name=3D"autor" content=3D"Soluty Comunica=C3=A7=C3=A3o &amp; =
Design">
<META content=3D"pt-br" http-equiv=3D"content-language">
<META content=3D"text/html; charset=3Dutf-8" =
http-equiv=3D"content-type"><LINK rel=3D"shortcut icon"=20
type=3D"image/x-icon" href=3D"../../../../../favicon.ico"><LINK =
rel=3D"stylesheet"=20
type=3D"text/css" =
href=3D"http://www.zulupa.com.br/layout/css/zulupa.css">
<SCRIPT type=3D"text/javascript" =
src=3D"http://www.zulupa.com.br/scripts/jquery-1.4.4.min.js"></SCRIPT>

<SCRIPT type=3D"text/javascript">=0A=
        $(document).ready(function () {=0A=
            var palavraChave =3D "Buscar";=0A=
            var tbPalavra =3D $("#tbPalavrachave");=0A=
            if (tbPalavra.val() =3D=3D "") { =
tbPalavra.val(palavraChave); }=0A=
            tbPalavra.focusin(function () { if ($(this).val() =3D=3D =
palavraChave) { $(this).val("") } });=0A=
            tbPalavra.focusout(function () { if ($(this).val() =3D=3D =
"") { $(this).val(palavraChave) } });=0A=
        });=0A=
    </SCRIPT>
<!--[if lte IE 6]>
        <link rel=3D"stylesheet" type=3D"text/css" =
href=3D"/layout/css/ie6.css" />
    <![endif]-->
<SCRIPT type=3D"text/javascript">=0A=
        var _gaq =3D _gaq || [];=0A=
        _gaq.push(['_setAccount', 'UA-10661995-21']);=0A=
        _gaq.push(['_trackPageview']);=0A=
=0A=
        (function () {=0A=
            var ga =3D document.createElement('script'); ga.type =3D =
'text/javascript'; ga.async =3D true;=0A=
            ga.src =3D ('https:' =3D=3D document.location.protocol ? =
'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';=0A=
            var s =3D document.getElementsByTagName('script')[0]; =
s.parentNode.insertBefore(ga, s);=0A=
        })();=0A=
    </SCRIPT>
<LINK rel=3D"stylesheet" type=3D"text/css" =
href=3D"http://www.zulupa.com.br/layout/css/colunas.css">
<SCRIPT type=3D"text/javascript" =
src=3D"http://www.zulupa.com.br/scripts/jquery.textareaCounter.plugin.js"=
></SCRIPT>

<SCRIPT type=3D"text/javascript">=0A=
        $(document).ready(function () {=0A=
            var options =3D {=0A=
                'maxCharacterSize': 350,=0A=
                'originalStyle': 'originalTextareaInfo',=0A=
                'warningStyle': 'warningTextareaInfo',=0A=
                'warningNumber': 40,=0A=
                //'displayFormat': '#input/#max caracteres | #words =
palavras'=0A=
                'displayFormat': '#input/#max caracteres'=0A=
            };=0A=
            $('#dinamicContent_tbMensagem').textareaCount(options);=0A=
        });=0A=
    </SCRIPT>

<STYLE type=3D"text/css"> #topo { background-image: =
url(/layout/imagens/bg-topo-geral2.jpg); } </STYLE>
<LINK rel=3D"stylesheet" type=3D"text/css" =
href=3D"http://www.zulupa.com.br/WebResource.axd?d=3DHfcGgolzuVsCQWv3Fz9N=
hKz56ucnsIxDoOpqSIWzhQ2AwY_o9jzz_WmT3AL6x2hP2XTmAZ2haoYC-2Y-u8qf0Sx7iBDbg=
2dW5KtYP_OXixMx03x_4hXtG3zvoO4Hc9LV6rkD42CQV9JfZ0HwVjV9hnDyueg1&amp;t=3D6=
34341658461430741">
<META name=3D"GENERATOR" content=3D"MSHTML 9.00.7930.16423"></HEAD>
<BODY>
<FORM id=3D"formulario" onsubmit=3D"javascript:return =
WebForm_OnSubmit();" method=3D"post"=20
action=3D"rede-globo-incentiva-preconceito-contra-animais">
<DIV class=3D"aspNetHidden"><INPUT id=3D"__EVENTTARGET" =
name=3D"__EVENTTARGET" type=3D"hidden">
<INPUT id=3D"__EVENTARGUMENT" name=3D"__EVENTARGUMENT" =
type=3D"hidden"><INPUT id=3D"__VIEWSTATE"=20
name=3D"__VIEWSTATE" =
value=3D"/wEPDwUKLTIxODgzMDkxMQ9kFgJmD2QWBAIBD2QWBAIBDxYCHgdjb250ZW50BS9S=
ZWRlIEdsb2JvIGluY2VudGl2YSBwcmVjb25jZWl0byBjb250cmEgYW5pbWFpc2QCAg8WAh8AB=
ZMBcmVkZSBnbG9ibywgYW5pbWFpcywgcHJlY29uY2VpdG8sIGdhdG8sIHRveG9wbGFzbW9zZS=
wgZ2VzdGFudGVzLCBncsOhdmlkYXMsIGRvZW7Dp2EsIHpvb25vc2VzLCBjb2x1bmFzLCBhbml=
tYWlzIGRlIGVzdGltYcOnw6NvLCBub3ZlbGEsIHZhY2luYcOnw6NvZAIDD2QWFAIDDw8WBB4H=
VG9vbFRpcAUNenVsdXBhLmNvbS5ich4EVGV4dAUNenVsdXBhLmNvbS5icmRkAgcPFgIfAgUcc=
8OhYmFkbywgMjMgZGUgYWJyaWwgZGUgMjAxMWQCCQ9kFgYCAw8PFgQfAgUHQ29sdW5hcx4LTm=
F2aWdhdGVVcmwFCC9jb2x1bmFzZGQCBQ8PFgQfAgUDUGV0HwMFDC9jb2x1bmFzL3BldGRkAgc=
PFgIfAgUvUmVkZSBHbG9ibyBpbmNlbnRpdmEgcHJlY29uY2VpdG8gY29udHJhIGFuaW1haXNk=
AgsPFCsAAg8WBB4LXyFEYXRhQm91bmRnHgtfIUl0ZW1Db3VudAIdZGQWAmYPZBY6AgEPZBYEA=
gEPFgQeBVZhbHVlBQEwHgdWaXNpYmxlaGQCAw8PFgwfAgUJTm90w61jaWFzHwEFCU5vdMOtY2=
lhcx4GVGFyZ2V0BQVfc2VsZh8DBQkvbm90aWNpYXMeCENzc0NsYXNzBQ5tZW51LXByaW5jaXB=
hbB4EXyFTQgICZGQCAg9kFgQCAQ8WBB8GBQExHwdoZAIDDw8WDB8CBQhFY29ub21pYR8BBQhF=
Y29ub21pYR8IBQVfc2VsZh8DBRIvbm90aWNpYXMvZWNvbm9taWEfCWUfCgICZGQCAw9kFgQCA=
Q8WBB8GBQExHwdoZAIDDw8WDB8CBQdFc3BvcnRlHwEFB0VzcG9ydGUfCAUFX3NlbGYfAwURL2=
5vdGljaWFzL2VzcG9ydGUfCWUfCgICZGQCBA9kFgQCAQ8WBB8GBQExHwdoZAIDDw8WDB8CBQh=
Qb2xpY2lhbB8BBQhQb2xpY2lhbB8IBQVfc2VsZh8DBRIvbm90aWNpYXMvcG9saWNpYWwfCWUf=
CgICZGQCBQ9kFgQCAQ8WBB8GBQExHwdoZAIDDw8WDB8CBQlQb2zDrXRpY2EfAQUJUG9sw610a=
WNhHwgFBV9zZWxmHwMFEi9ub3RpY2lhcy9wb2xpdGljYR8JZR8KAgJkZAIGD2QWBAIBDxYEHw=
YFATEfB2hkAgMPDxYMHwIFBVJ1cmFsHwEFBVJ1cmFsHwgFBV9zZWxmHwMFDy9ub3RpY2lhcy9=
ydXJhbB8JZR8KAgJkZAIHD2QWBAIBDxYEHwYFATEfB2hkAgMPDxYMHwIFBlNhw7pkZR8BBQZT=
YcO6ZGUfCAUFX3NlbGYfAwUPL25vdGljaWFzL3NhdWRlHwllHwoCAmRkAggPZBYEAgEPFgQfB=
gUBMR8HaGQCAw8PFgwfAgUKVmFyaWVkYWRlcx8BBQpWYXJpZWRhZGVzHwgFBV9zZWxmHwMFFC=
9ub3RpY2lhcy92YXJpZWRhZGVzHwllHwoCAmRkAgkPZBYEAgEPFgQfBgUBMB8HaGQCAw8PFgw=
fAgUORm90b3MgZSBBZ2VuZGEfAQUORm90b3MgZSBBZ2VuZGEfCAUFX3NlbGYfAwUPL2ZvdG9z=
LWUtYWdlbmRhHwkFDm1lbnUtcHJpbmNpcGFsHwoCAmRkAgoPZBYEAgEPFgQfBgUBMB8HaGQCA=
w8PFgwfAgUGR29zcGVsHwEFBkdvc3BlbB8IBQVfc2VsZh8DBQcvZ29zcGVsHwkFDm1lbnUtcH=
JpbmNpcGFsHwoCAmRkAgsPZBYEAgEPFgQfBgUBMR8HaGQCAw8PFgwfAgUHQ29sdW5hcx8BBQd=
Db2x1bmFzHwgFBV9zZWxmHwMFDy9jb2x1bmFzL2dvc3BlbB8JZR8KAgJkZAIMD2QWBAIBDxYE=
HwYFATEfB2hkAgMPDxYMHwIFDkZvdG9zIGUgQWdlbmRhHwEFDkZvdG9zIGUgQWdlbmRhHwgFB=
V9zZWxmHwMFFi9mb3Rvcy1lLWFnZW5kYS9nb3NwZWwfCWUfCgICZGQCDQ9kFgQCAQ8WBB8GBQ=
ExHwdoZAIDDw8WDB8CBQpSZWZsZXjDtWVzHwEFClJlZmxleMO1ZXMfCAUFX3NlbGYfAwUKL3J=
lZmxleG9lcx8JZR8KAgJkZAIOD2QWBAIBDxYEHwYFATEfB2hkAgMPDxYMHwIFCU5vdMOtY2lh=
cx8BBQlOb3TDrWNpYXMfCAUFX3NlbGYfAwUQL25vdGljaWFzL2dvc3BlbB8JZR8KAgJkZAIPD=
2QWBAIBDxYEHwYFATEfB2hkAgMPDxYMHwIFBURpY2FzHwEFBURpY2FzHwgFBV9zZWxmHwMFDS=
9kaWNhcy9nb3NwZWwfCWUfCgICZGQCEA9kFgQCAQ8WBB8GBQEwHwdoZAIDDw8WDB8CBQ9EZXN=
0YXF1ZSBadWx1cGEfAQUPRGVzdGFxdWUgWnVsdXBhHwgFBV9zZWxmHwMFEC9kZXN0YXF1ZS16=
dWx1cGEfCQUObWVudS1wcmluY2lwYWwfCgICZGQCEQ9kFgQCAQ8WBB8GBQEwHwdoZAIDDw8WD=
B8CBQpFZHVjYcOnw6NvHwEFCkVkdWNhw6fDo28fCAUFX3NlbGYfAwUJL2VkdWNhY2FvHwkFDm=
1lbnUtcHJpbmNpcGFsHwoCAmRkAhIPZBYEAgEPFgQfBgUBMR8HaGQCAw8PFgwfAgUHQ29sdW5=
hcx8BBQdDb2x1bmFzHwgFBV9zZWxmHwMFEC9jb2x1bmFzL2N1bHR1cmEfCWUfCgICZGQCEw9k=
FgQCAQ8WBB8GBQExHwdoZAIDDw8WDB8CBQ5Gb3RvcyBlIEFnZW5kYR8BBQ5Gb3RvcyBlIEFnZ=
W5kYR8IBQVfc2VsZh8DBRgvZm90b3MtZS1hZ2VuZGEvZWR1Y2FjYW8fCWUfCgICZGQCFA9kFg=
QCAQ8WBB8GBQExHwdoZAIDDw8WDB8CBQlOb3TDrWNpYXMfAQUJTm90w61jaWFzHwgFBV9zZWx=
mHwMFEi9ub3RpY2lhcy9lZHVjYWNhbx8JZR8KAgJkZAIVD2QWBAIBDxYEHwYFATAfB2hkAgMP=
DxYMHwIFB0NvbHVuYXMfAQUHQ29sdW5hcx8IBQVfc2VsZh8DBQgvY29sdW5hcx8JBQ5tZW51L=
XByaW5jaXBhbB8KAgJkZAIWD2QWBAIBDxYEHwYFATEfB2hkAgMPDxYMHwIFB0N1bHR1cmEfAQ=
UHQ3VsdHVyYR8IBQVfc2VsZh8DBRAvY29sdW5hcy9jdWx0dXJhHwllHwoCAmRkAhcPZBYEAgE=
PFgQfBgUBMR8HaGQCAw8PFgwfAgUUTW9kYSBlIENvbXBvcnRhbWVudG8fAQUUTW9kYSBlIENv=
bXBvcnRhbWVudG8fCAUFX3NlbGYfAwUdL2NvbHVuYXMvbW9kYS1lLWNvbXBvcnRhbWVudG8fC=
WUfCgICZGQCGA9kFgQCAQ8WBB8GBQExHwdoZAIDDw8WDB8CBQNQZXQfAQUDUGV0HwgFBV9zZW=
xmHwMFDC9jb2x1bmFzL3BldB8JZR8KAgJkZAIZD2QWBAIBDxYEHwYFATEfB2hkAgMPDxYMHwI=
FBlNhw7pkZR8BBQZTYcO6ZGUfCAUFX3NlbGYfAwUOL2NvbHVuYXMvc2F1ZGUfCWUfCgICZGQC=
Gg9kFgQCAQ8WBB8GBQExHwdoZAIDDw8WDB8CBQpWYXJpZWRhZGVzHwEFClZhcmllZGFkZXMfC=
AUFX3NlbGYfAwUTL2NvbHVuYXMvdmFyaWVkYWRlcx8JZR8KAgJkZAIbD2QWBAIBDxYEHwYFAT=
AfB2hkAgMPDxYMHwIFBURpY2FzHwEFBURpY2FzHwgFBV9zZWxmHwMFDC9kaWNhcy9nZXJhbB8=
JBQ5tZW51LXByaW5jaXBhbB8KAgJkZAIcD2QWBAIBDxYEHwYFATAfB2hkAgMPDxYMHwIFD01p=
bmhhIEhpc3TDs3JpYR8BBQ9NaW5oYSBIaXN0w7NyaWEfCAUFX3NlbGYfAwUPL21pbmhhLWhpc=
3RvcmlhHwkFDm1lbnUtcHJpbmNpcGFsHwoCAmRkAh0PZBYEAgEPFgQfBgUBMB8HaGQCAw8PFg=
wfAgUHQ2hhcmdlcx8BBQdDaGFyZ2VzHwgFBV9zZWxmHwMFCC9jaGFyZ2VzHwkFDm1lbnUtcHJ=
pbmNpcGFsHwoCAmRkAg0PZBYCAgEPDxYEHwMFJGh0dHA6Ly93d3cudG9wYnJhc2lsY2FtaXNl=
dGFzLmNvbS5ich8HZ2QWAmYPDxYCHghJbWFnZVVybAU4L2ZpbGVzL2FudW5jaW9zLzU2ZGYyN=
jg2LTBkNDMtNDlmMC1iODk3LWJmM2VmZmNiYjNhYi5qcGdkZAIPD2QWEgIBDxYCHwIFDUNvbH=
VuYXMgLyBQZXRkAgMPFgIfAgUxMTAvMDQvMjAxMSAyMGg1OCAtIEF0dWFsaXphZG8gZW0gMTA=
vMDQvMjAxMSAyMWgwNGQCBQ8WAh8CBS9SZWRlIEdsb2JvIGluY2VudGl2YSBwcmVjb25jZWl0=
byBjb250cmEgYW5pbWFpc2QCBw8PFgQfCwU6L2ZpbGVzL2NvbHVuaXN0YXMvOWQ3MWYwMDQtZ=
WU2My00ZjhlLTk2YTYtNGFjZmI5NzkwOGJjLmpwZx4NQWx0ZXJuYXRlVGV4dAUVU2ltb25lIF=
JhdWJlciBXw7xyZmVsZGQCCQ8PFgIfAgUVU2ltb25lIFJhdWJlciBXw7xyZmVsZGQCCw8WAh8=
CBU1Gb3JtYW5kYSBlbSBNZWRpY2luYSBWZXRlcmluw6FyaWEgcGVsYSBVbml2ZXJzaWRhZGUg=
RmVkZXJhbCBkZSBQZWxvdGFzDTxiciAvPmQCDQ8WAh8CBZ8ePHA+DQoJTm8gY2Fww610dWxvI=
GRvIGRpYSAwNCBkZSBhYnJpbCBkZSAyMDExIGRhIG5vdmVsYSBJbnNlbnNhdG8gQ29yYcOnw6=
NvLCB0aXZlbW9zIG8gZGVzcHJhemVyIGRlIGFzc2lzdGlyIHVtYSBjZW5hIGxhbWVudMOhdmV=
sLiBOYSBjZW5hIGVtIHF1ZXN0w6NvLCBhcGFyZWNlIHVtYSBnYXRhIHRyaWNvbG9yIGVtIGNp=
bWEgZG8gY2Fww7QgZG8gY2Fycm8gZGUgQ2Fyb2wgKHBlcnNvbmFnZW0gZ3LDoXZpZGEgZGEgY=
XRyaXogQ2FtaWxhIFBpdGFuZ2EpLCBhIHF1YWwgcGVkZSBhIHVtYSBhbWlnYSBxdWUgcmV0aX=
JlIG8gYW5pbWFsIGRvIGxvY2FsIHBvcnF1ZSBlbGEgbsOjbyBwb2RlIGNoZWdhciBwZXJ0byw=
gcGVsbyByaXNjbyBkZSBjb250cmFpciB0b3hvcGxhc21vc2UuPGJyIC8+DQoJw4kgaW1wcmVz=
c2lvbmFudGUgbyBmYXRvIGRhIGVtaXNzb3JhIGRlIG1haW9yIGF1ZGnDqm5jaWEgZG8gcGHDr=
XMsIGFzc2lzdGlkYSBwb3IgbWlsaMO1ZXMgZGUgYnJhc2lsZWlyb3MsIHF1ZSBwb3NzdWkgZ3=
JhbmRlIGluZmx1w6puY2lhIG5hIGZvcm1hw6fDo28gZGUgb3BpbmnDtWVzIGUgcXVlIGZheiB=
xdWVzdMOjbyBkZSBkaXZ1bGdhciBxdWUgdGVtIHJlc3BvbnNhYmlsaWRhZGUgc29jaWFsLCBw=
ZXJtaXRpciBhIGV4aWJpw6fDo28gZGUgdW1hIGNlbmEgcHJlY29uY2VpdHVvc2EgY29tbyBlc=
3NhLCBwcm9kdXppZGEgcG9yIHVtYSBlcXVpcGUgY29tcGxldGFtZW50ZSBkZXNpbmZvcm1hZG=
Egc29icmUgbyBhc3N1bnRvLjxiciAvPg0KCUluZmVsaXptZW50ZSwgbsOjbyDDqSBhIHByaW1=
laXJhIHZleiBxdWUgb3MgZ2F0b3Mgc8OjbyBhY3VzYWRvcyBkZSBzZXJlbSBvcyByZXNwb25z=
w6F2ZWlzIHBlbGEgdG94b3BsYXNtb3NlLCBvIHF1ZSBuw6NvIMOpIHZlcmRhZGUuPGJyIC8+D=
QoJQSB0b3hvcGxhc21vc2Ugw6kgdW1hIGRvZW7Dp2EgY2F1c2FkYSBwZWxvIFRveG9wbGFzbW=
EgZ29uZGlpLCBwcm90b3pvw6FyaW8gZW5jb250cmFkbyBuYSBuYXR1cmV6YSBxdWUgcG9kZSB=
pbmZlY3RhciBtYW3DrWZlcm9zLCBhdmVzIGUgbyBob21lbS48YnIgLz4NCglPIGdhdG8gZSBv=
dXRyb3MgZmVsw61kZW9zIHPDo28gb3Mgw7puaWNvcyBob3NwZWRlaXJvcyBkZWZpbml0aXZvc=
ywgb3Ugc2VqYSwgbm9zIHF1YWlzIG8gcGFyYXNpdGEgcG9kZSByZWFsaXphciB0b2RvIHNldS=
BjaWNsbyBkZSB2aWRhLiBRdWFuZG8gaW5mZWN0YWRvcywgZWxpbWluYW0gb3Mgb29jaXN0b3M=
gKGZvcm1hIGluZmVjdGFudGUpIG5hcyBmZXplcywgcXVlIGNvbnRhbWluYW0gbyBhbWJpZW50=
ZS4gTm8gZW50YW50bywgb3MgZmVsaW5vcyBzb21lbnRlIGVsaW1pbmFtIG8gcHJvdG96b8Ohc=
mlvIG5hIHByaW1laXJhIHZleiBxdWUgc8OjbyBpbmZlY3RhZG9zLCBvIHF1ZSBub3JtYWxtZW=
50ZSBvY29ycmUgcXVhbmRvIGZpbGhvdGVzIHBlbGEgaW5nZXN0w6NvIGRlIHByZXNhcyBjb25=
0YW1pbmFkYXMsIGNvbSBkdXJhw6fDo28gZGUgcG91Y29zIGRpYXMuIERlcG9pcyBkaXNzbywg=
YWRxdWlyZW0gaW11bmlkYWRlIGUgbsOjbyBlbGltaW5hbSBtYWlzIG8gYWdlbnRlIG5hcyBmZ=
Xplcy48YnIgLz4NCglPIGhvbWVtIHBvZGUgY29udHJhaXIgYSBkb2Vuw6dhIHNvbWVudGUgc2=
UgZW50cmFyIGVtIGNvbnRhdG8gY29tIGFzIGZlemVzIGluZmVjdGFkYXMgZG8gZ2F0byBhcMO=
zcyAzIGRpYXMgZXhwb3N0YXMgbm8gYW1iaWVudGUsIGUgYWluZGEgYXNzaW0gdGVyaWEgcXVl=
IGluZ2VyaS1sYXMgb3UgYWNpZGVudGFsbWVudGUgY29sb2NhciBhIG3Do28gbmEgYm9jYSwgb=
yBxdWUgcG9kZSBzZXIgdHJhbnF1aWxhbWVudGUgZXZpdGFkbyBjb20gbWVkaWRhcyBiw6FzaW=
NhcyBkZSBoaWdpZW5lLiBOw6NvIGV4aXN0ZSBhIHBvc3NpYmlsaWRhZGUgZGUgY29udGFtaW5=
hw6fDo28gc29tZW50ZSBwb3IgZW5jb3N0YXIgb3UgYWNhcmljaWFyIHVtIGdhdG8uPGJyIC8+=
DQoJTyBwcmluY2lwYWwgbW9kbyBkZSB0cmFuc21pc3PDo28gZGEgZG9lbsOnYSDDqSBwb3Igd=
mlhIGRpZ2VzdGl2YSwgcGVsYSBpbmdlc3TDo28gZGUgb29jaXN0b3MgZXNwb3J1bGFkb3Mgbm=
9zIGFsaW1lbnRvcywgbm8gc29sbyBlIG5hIMOhZ3VhLCBvdSBwb3IgaW5nZXN0w6NvIGRlIGN=
hcm5lIGNvbnRhbWluYWRhIGNvbSBjaXN0b3MuIEFpbmRhIHBvZGUgb2NvcnJlciBwb3IgaW5n=
ZXN0w6NvIGRlIMOhZ3VhIGNvbnRhbWluYWRhLCB0cmFuc2Z1c8OjbyBkZSBzYW5ndWUgb3Ugd=
HJhbnNwbGFudGUgZGUgw7NyZ8Ojb3MuIEEgZm9ybWEgbWFpcyBjb211bSBkZSBjb250YW1pbm=
HDp8OjbyDDqSBwZWxhIGluZ2VzdMOjbyBkZSBjYXJuZSBjcnVhIG91IG1hbCBjb3ppZGEgZSB=
2ZXJkdXJhcyBtYWwgbGF2YWRhcy48YnIgLz4NCglNdWxoZXJlcyBncsOhdmlkYXMsIGFvIGNv=
bnRyYcOtcmVtIGEgZG9lbsOnYSBkdXJhbnRlIGEgZ2VzdGHDp8OjbywgY29ycmVtIG8gcmlzY=
28gZGUgYWJvcnRvIG91IG5hc2NpbWVudG8gZGUgYmViw6pzIGNvbSB1bWEgc8OtbmRyb21lIG=
NvbmhlY2lkYSBjb21vIFTDqXRyYWRlIGRlIFNhYmluLiBNw6NlcyBwcmV2aWFtZW50ZSBpbmZ=
lY3RhZGFzIG7Do28gcG9kZW0gdHJhbnNtaXRpciBhIGRvZW7Dp2EgcGFyYSBvcyBiZWLDqnMs=
IGEgbWVub3MgcXVlIG9jb3JyYSB1bWEgcmVhZ3VkaXphw6fDo28gZGV2aWRhIMOgIGltdW5vc=
3N1cHJlc3PDo28uIEVzdGltYS1zZSBxdWUgaG9qZSwgOTAlIGRhcyBwZXNzb2FzIGFkdWx0YX=
MgasOhIHRlbmhhbSB0aWRvIGNvbnRhdG8gY29tIG8gYWdlbnRlIGUsIHBvcnRhbnRvLCBwb3N=
zdWVtIGltdW5pZGFkZSBjb250cmEgZWxlLiBOb3JtYWxtZW50ZSwgcXVhbmRvIGEgZG9lbsOn=
YSDDqSBhZHF1aXJpZGEgcGVsb3MgYW5pbWFpcyBvdSBwZWxvIGhvbWVtIG7Do28gb2NvcnJlb=
SBzaW5haXMgYXBhcmVudGVzLCBwYXNzYW5kbyBkZXNwZXJjZWJpZGEuIE5vIGVudGFudG8sIH=
BvZGUgY2F1c2FyIGEgbW9ydGUgZGUgaW5kaXbDrWR1b3MgaW11bm9zc3VwcmltaWRvcyBvdSB=
sZXZhciDDoCBmb3JtYXMgZ3JhdmVzIGRhIGluZmVjw6fDo28uPGJyIC8+DQoJQSB0b3hvcGxh=
c21vc2UgcG9kZSBzZXIgZXZpdGFkYSBjb20gbWVkaWRhcyBoaWdpw6puaWNhcyBjb21vLCBsY=
XZhciBhcyBtw6NvcyBhbnRlcyBkYXMgcmVmZWnDp8O1ZXMsIHVzYXIgbHV2YXMgZHVyYW50ZS=
BvIG1hbnVzZWlvIGRvIHNvbG8gZSBjYXJuZXMsIGNvemluaGFyIG91IGN1cmFyIGNhcm5lcyB=
kZSBmb3JtYSBhZGVxdWFkYSwgbGF2YXIgYmVtIGFzIGZydXRhcyBlIHZlZ2V0YWlzIGNydXMs=
IGRlc3RpbmFyIGFkZXF1YWRhbWVudGUgYXMgZXhjcmV0YXMgZG9zIGdhdG9zLCBkZSBwcmVmZ=
XLDqm5jaWEgY29tIHVzbyBkZSBjYWl4YSBkZSBhcmVpYSB0cm9jYWRhIGRpYXJpYW1lbnRlIG=
UgY29tIGx1dmFzLCBhbGltZW50YXIgc2V1IGdhdG8gY29tIHJhw6fDtWVzIHNlZ3VyYXMgZSB=
jb250cm9sYXIgb3Mgcm9lZG9yZXMuPGJyIC8+DQoJTsOjbyBow6EgcmlzY28gYWxndW0gZGUg=
Y29udHJhaXIgYSBkb2Vuw6dhIHBlbG8gY29udGF0byBkaXJldG8gY29tIGdhdG9zLiBRdWFsc=
XVlciBwZXNzb2EsIGluY2x1c2l2ZSBtdWxoZXJlcyBncsOhdmlkYXMsIHBvZGUgdHJhbnF1aW=
xhbWVudGUgY29udml2ZXIgY29tIGdhdG9zIHNlbSBzZSBwcmVvY3VwYXIgY29tIG8gcmlzY28=
gZGUgY29udHJhaXIgdG94b3BsYXNtb3NlIGF0cmF2w6lzIGRlbGUuPGJyIC8+DQoJw4kgcHJl=
Y2lzbyBlc2NsYXJlY2ltZW50byBlIGJvbSBzZW5zbyBxdWFuZG8gbyBhc3N1bnRvIHPDo28gb=
3MgYW5pbWFpcywgcG9pcyBpbmZvcm1hw6fDtWVzIGVxdWl2b2NhZGFzIHBvZGVtIGxldmFyIG=
FvIGFiYW5kb25vIGUgYXTDqSBtZXNtbyBhbyBzYWNyaWbDrWNpbyBkZSBtdWl0b3MgZGVsZXM=
uICZuYnNwOyZuYnNwOzwvcD4NCmQCDw8WAh8FAgEWAmYPZBYEAgEPDxYEHwsFNy9maWxlcy9j=
b2x1bmFzLzM4YjI2NmRiLTZjMzAtNGRkMi04MDQzLTkzZTBkMWZhMzJhYi5qcGcfDAUsQ2Ftc=
GFuaGEgZGEgUEVBIC0gUHJvamV0byBFc3BlcmFuw6dhIEFuaW1hbC5kZAIDDw8WAh8CBSxDYW=
1wYW5oYSBkYSBQRUEgLSBQcm9qZXRvIEVzcGVyYW7Dp2EgQW5pbWFsLmRkAhEPZBYCAgEPFgI=
fBQIBFgJmD2QWBAIBDxYCHwIFtgFFbSB1bWEgc29jaWVkYWRlIGNvbW8gYSBub3NzYSBhIGZh=
bHRhIGRlIGNvbmhlY2ltZW50bywgZ2VyYW0gYXRpdHVkZXMgZGUgcHJlY29uY2VpdG9zICBlI=
GdlbmVyYWxpemHDp2FvIGNvbW8gZXNzYSBlbSByZWRlIG5hY2lvbmFsLi4uLnVtYSB2ZXJnb2=
5oYSEhDQoNCnBhcmFiZW5zIG11aXRvIGJlbSBlc2NyaXRvLi4uLmQCAw8PFgIfAgUaTHVjaWF=
uZSAtIDE0LzA0LzIwMTEgMTFoMzlkZAIRD2QWAgIBDw8WBB8DZR8HZ2QWAmYPDxYCHwsFOC9m=
aWxlcy9hbnVuY2lvcy81YWI5ZGI2MS1lMjk2LTRiMWYtODc2Ny1hMzAyZWQyYjA4ZTkuanBnZ=
GQCEw8WAh8FAgkWEmYPZBYCAgEPDxYIHwIFCU5vdMOtY2lhcx8BBQlOb3TDrWNpYXMfCAUFX3=
NlbGYfAwUJL25vdGljaWFzZGQCAg9kFgICAQ8PFggfAgUORm90b3MgZSBBZ2VuZGEfAQUORm9=
0b3MgZSBBZ2VuZGEfCAUFX3NlbGYfAwUPL2ZvdG9zLWUtYWdlbmRhZGQCBA9kFgICAQ8PFggf=
AgUGR29zcGVsHwEFBkdvc3BlbB8IBQVfc2VsZh8DBQcvZ29zcGVsZGQCBg9kFgICAQ8PFggfA=
gUPRGVzdGFxdWUgWnVsdXBhHwEFD0Rlc3RhcXVlIFp1bHVwYR8IBQVfc2VsZh8DBRAvZGVzdG=
FxdWUtenVsdXBhZGQCCA9kFgICAQ8PFggfAgUKRWR1Y2HDp8Ojbx8BBQpFZHVjYcOnw6NvHwg=
FBV9zZWxmHwMFCS9lZHVjYWNhb2RkAgoPZBYCAgEPDxYIHwIFB0NvbHVuYXMfAQUHQ29sdW5h=
cx8IBQVfc2VsZh8DBQgvY29sdW5hc2RkAgwPZBYCAgEPDxYIHwIFBURpY2FzHwEFBURpY2FzH=
wgFBV9zZWxmHwMFDC9kaWNhcy9nZXJhbGRkAg4PZBYCAgEPDxYIHwIFD01pbmhhIEhpc3TDs3=
JpYR8BBQ9NaW5oYSBIaXN0w7NyaWEfCAUFX3NlbGYfAwUPL21pbmhhLWhpc3RvcmlhZGQCEA9=
kFgICAQ8PFggfAgUHQ2hhcmdlcx8BBQdDaGFyZ2VzHwgFBV9zZWxmHwMFCC9jaGFyZ2VzZGQC=
GQ8WAh8FAgEWAmYPZBYEAgEPDxYEHwNlHwdoZGQCAw8PFgIeDUZsYXNoTW92aWVVcmwFOC9ma=
Wxlcy9hbnVuY2lvcy8xZTEwY2NkOS01NTlhLTQzZDUtODMxZi03NGZkNGM0YTNjZTMuc3dmZG=
QCGw8WAh8FZmQYAQUMY3RsMDAkbHZNZW51DxQrAA5kZGRkZGRkPCsAHQACHWRkZGYC/////w9=
kqjE5HMb85jTmsFH4V14IcIeQ3Tw=3D"=20
type=3D"hidden"></DIV>
<SCRIPT type=3D"text/javascript">=0A=
//<![CDATA[=0A=
var theForm =3D document.forms['formulario'];=0A=
if (!theForm) {=0A=
    theForm =3D document.formulario;=0A=
}=0A=
function __doPostBack(eventTarget, eventArgument) {=0A=
    if (!theForm.onsubmit || (theForm.onsubmit() !=3D false)) {=0A=
        theForm.__EVENTTARGET.value =3D eventTarget;=0A=
        theForm.__EVENTARGUMENT.value =3D eventArgument;=0A=
        theForm.submit();=0A=
    }=0A=
}=0A=
//]]>=0A=
</SCRIPT>

<SCRIPT type=3D"text/javascript" =
src=3D"http://www.zulupa.com.br/WebResource.axd?d=3Dt1a3jTzAU1H0YKCENRRgM=
J_KOpw35THYtUzRjU-gd4dwS4ZMJBii2NhMSxmLCnO5J3hbvhhhVRXHqlZJsfpzDAL7e2w1&a=
mp;t=3D634229165073228111"></SCRIPT>

<SCRIPT type=3D"text/javascript" =
src=3D"http://www.zulupa.com.br/ScriptResource.axd?d=3DIE3SMhz7Nr1IBmkGcx=
jlmkvWUEaFx8u37_7-tVA1qx1uSBkkj1rBwVNvKi9yCUrMt3bwlZBGqA1FZs1J3FBNjBHpAx7=
kVN3w7LZhpYLLaSMNRBOZGr1WiPQfdZjfmwUQ1_u15IFjhY-uK22yUn-rjSoQo6c1&amp;t=3D=
6df0ad7a"></SCRIPT>

<SCRIPT type=3D"text/javascript" =
src=3D"http://www.zulupa.com.br/ScriptResource.axd?d=3Dt7oEiD37LxCsHtiLet=
OOQPoPXTDztYgFfkPCPOuVUhyiHmnM46j8uv695IpaWRSrQZozBi14UC9iUFP3wqY5lelBKHw=
pCJlE0cRS8bNBtEDMMtl1q4-Hz7S81AEAILgdscrSoA2&amp;t=3Dffffffffbd2983fc"></=
SCRIPT>

<SCRIPT type=3D"text/javascript">=0A=
//<![CDATA[=0A=
if (typeof(Sys) =3D=3D=3D 'undefined') throw new Error('ASP.NET Ajax =
client-side framework failed to load.');=0A=
//]]>=0A=
</SCRIPT>

<SCRIPT type=3D"text/javascript" =
src=3D"http://www.zulupa.com.br/ScriptResource.axd?d=3DnJ9q7-XhokvmdKLsRA=
dcn3p8-APpFGotXekDXH736jtDActEDgKz-ipiLBPpuybpDUxolIurlbYU7TpEE_GZKcS9Euf=
OedOMNFnspca4G7K4WmdXlEg7IivwKAW06SfE-tWvnKxe68BG34a7m8E53vDlrdM1&amp;t=3D=
ffffffffbd2983fc"></SCRIPT>

<SCRIPT type=3D"text/javascript">=0A=
//<![CDATA[=0A=
function WebForm_OnSubmit() {=0A=
if (typeof(ValidatorOnSubmit) =3D=3D "function" && ValidatorOnSubmit() =
=3D=3D false) return false;=0A=
return true;=0A=
}=0A=
//]]>=0A=
</SCRIPT>

<DIV class=3D"aspNetHidden"><INPUT id=3D"__EVENTVALIDATION" =
name=3D"__EVENTVALIDATION"=20
value=3D"/wEWCALq2a/FBAK4lfioDgKf3LoXApvQr40JAvKOq98FArj9vPQMAo7wsqwCApua=
1aIL1KWXPWSZV0aygLKiaxkU5xx0dGQ=3D"=20
type=3D"hidden"></DIV>
<SCRIPT type=3D"text/javascript">=0A=
//<![CDATA[=0A=
Sys.WebForms.PageRequestManager._initialize('ctl00$sm', 'formulario', =
['tctl00$dinamicContent$upForm','dinamicContent_upForm'], [], [], 90, =
'ctl00');=0A=
//]]>=0A=
</SCRIPT>

<DIV id=3D"topo">
<DIV id=3D"topo-content"><A id=3D"hlZulupa" class=3D"zulupa" =
title=3D"zulupa.com.br"=20
href=3D"http://www.zulupa.com.br/"><IMG title=3D"zulupa.com.br" =
alt=3D"zulupa.com.br"=20
src=3D"http://www.zulupa.com.br/layout/imagens/zulupa.gif"></A>
<DIV id=3D"pnBusca" class=3D"busca" onkeypress=3D"javascript:return =
WebForm_FireDefaultButton(event, 'btnBusca')">
<TABLE cellSpacing=3D"0" cellPadding=3D"0">
  <TBODY>
  <TR>
    <TD><INPUT style=3D"width: 200px;" id=3D"tbPalavrachave" =
title=3D"Ache no Zulupa"=20
      name=3D"ctl00$tbPalavrachave" type=3D"text"></TD>
    <TD><INPUT id=3D"btnBusca" class=3D"botao-preto" =
name=3D"ctl00$btnBusca" value=3D"Ok" =
type=3D"submit"></TD></TR></TBODY></TABLE></DIV></DIV></DIV>
<DIV id=3D"barra-horizontal">
<DIV id=3D"barra-content">
<DIV id=3D"data">                s=C3=A1bado, 23 de abril de 2011        =
    </DIV>
<DIV id=3D"breadcrumbs"><A id=3D"dinamicBreadcrumbs_hlHome" =
href=3D"http://www.zulupa.com.br/">home</A>=C2=BB=20
   <A id=3D"dinamicBreadcrumbs_hlSecao"=20
href=3D"http://www.zulupa.com.br/colunas">Colunas</A>=C2=BB    <A =
id=3D"dinamicBreadcrumbs_hlSubsecao"=20
href=3D"http://www.zulupa.com.br/colunas/pet">Pet</A>=C2=BB    Rede =
Globo incentiva=20
preconceito contra animais            </DIV>
<DIV class=3D"clear"></DIV></DIV></DIV>
<DIV id=3D"container">
<DIV id=3D"menu">
<UL>
  <LI><A id=3D"lvMenu_hlMenu_0" class=3D"menu-principal" =
title=3D"Not=C3=ADcias" href=3D"http://www.zulupa.com.br/noticias"=20
  target=3D"_self">Not=C3=ADcias</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_1" title=3D"Economia" =
href=3D"http://www.zulupa.com.br/noticias/economia"=20
  target=3D"_self">Economia</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_2" title=3D"Esporte" =
href=3D"http://www.zulupa.com.br/noticias/esporte"=20
  target=3D"_self">Esporte</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_3" title=3D"Policial" =
href=3D"http://www.zulupa.com.br/noticias/policial"=20
  target=3D"_self">Policial</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_4" title=3D"Pol=C3=ADtica" =
href=3D"http://www.zulupa.com.br/noticias/politica"=20
  target=3D"_self">Pol=C3=ADtica</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_5" title=3D"Rural" =
href=3D"http://www.zulupa.com.br/noticias/rural"=20
  target=3D"_self">Rural</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_6" title=3D"Sa=C3=BAde" =
href=3D"http://www.zulupa.com.br/noticias/saude"=20
  target=3D"_self">Sa=C3=BAde</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_7" title=3D"Variedades" =
href=3D"http://www.zulupa.com.br/noticias/variedades"=20
  target=3D"_self">Variedades</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_8" class=3D"menu-principal" title=3D"Fotos =
e Agenda"=20
  href=3D"http://www.zulupa.com.br/fotos-e-agenda" =
target=3D"_self">Fotos e=20
  Agenda</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_9" class=3D"menu-principal" =
title=3D"Gospel" href=3D"http://www.zulupa.com.br/gospel"=20
  target=3D"_self">Gospel</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_10" title=3D"Colunas" =
href=3D"http://www.zulupa.com.br/colunas/gospel"=20
  target=3D"_self">Colunas</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_11" title=3D"Fotos e Agenda" =
href=3D"http://www.zulupa.com.br/fotos-e-agenda/gospel"=20
  target=3D"_self">Fotos e Agenda</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_12" title=3D"Reflex=C3=B5es" =
href=3D"http://www.zulupa.com.br/reflexoes"=20
  target=3D"_self">Reflex=C3=B5es</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_13" title=3D"Not=C3=ADcias" =
href=3D"http://www.zulupa.com.br/noticias/gospel"=20
  target=3D"_self">Not=C3=ADcias</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_14" title=3D"Dicas" =
href=3D"http://www.zulupa.com.br/dicas/gospel"=20
  target=3D"_self">Dicas</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_15" class=3D"menu-principal" =
title=3D"Destaque Zulupa"=20
  href=3D"http://www.zulupa.com.br/destaque-zulupa" =
target=3D"_self">Destaque=20
  Zulupa</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_16" class=3D"menu-principal" =
title=3D"Educa=C3=A7=C3=A3o" href=3D"http://www.zulupa.com.br/educacao"=20
  target=3D"_self">Educa=C3=A7=C3=A3o</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_17" title=3D"Colunas" =
href=3D"http://www.zulupa.com.br/colunas/cultura"=20
  target=3D"_self">Colunas</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_18" title=3D"Fotos e Agenda" =
href=3D"http://www.zulupa.com.br/fotos-e-agenda/educacao"=20
  target=3D"_self">Fotos e Agenda</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_19" title=3D"Not=C3=ADcias" =
href=3D"http://www.zulupa.com.br/noticias/educacao"=20
  target=3D"_self">Not=C3=ADcias</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_20" class=3D"menu-principal" =
title=3D"Colunas" href=3D"http://www.zulupa.com.br/colunas"=20
  target=3D"_self">Colunas</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_21" title=3D"Cultura" =
href=3D"http://www.zulupa.com.br/colunas/cultura"=20
  target=3D"_self">Cultura</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_22" title=3D"Moda e Comportamento" =
href=3D"http://www.zulupa.com.br/colunas/moda-e-comportamento"=20
  target=3D"_self">Moda e Comportamento</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_23" title=3D"Pet" =
href=3D"http://www.zulupa.com.br/colunas/pet"=20
  target=3D"_self">Pet</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_24" title=3D"Sa=C3=BAde" =
href=3D"http://www.zulupa.com.br/colunas/saude"=20
  target=3D"_self">Sa=C3=BAde</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_25" title=3D"Variedades" =
href=3D"http://www.zulupa.com.br/colunas/variedades"=20
  target=3D"_self">Variedades</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_26" class=3D"menu-principal" =
title=3D"Dicas" href=3D"http://www.zulupa.com.br/dicas/geral"=20
  target=3D"_self">Dicas</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_27" class=3D"menu-principal" title=3D"Minha =
Hist=C3=B3ria"=20
  href=3D"http://www.zulupa.com.br/minha-historia" =
target=3D"_self">Minha=20
  Hist=C3=B3ria</A></LI>
  <LI><A id=3D"lvMenu_hlMenu_28" class=3D"menu-principal" =
title=3D"Charges" href=3D"http://www.zulupa.com.br/charges"=20
  target=3D"_self">Charges</A></LI></UL></DIV>
<DIV id=3D"content">
<DIV class=3D"banner-topo"><A id=3D"dinamicBannerTopo_hlBannerTopo" =
href=3D"http://www.topbrasilcamisetas.com.br/"=20
target=3D"_blank"><IMG style=3D"width: 605px; height: 100px;" =
id=3D"dinamicBannerTopo_imgBannerTopo"=20
src=3D"http://www.zulupa.com.br/files/anuncios/56df2686-0d43-49f0-b897-bf=
3effcbb3ab.jpg"></A></DIV>
<H4>        Colunas / Pet</H4>
<P>        &nbsp;</P>
<P class=3D"criado">        10/04/2011 20h58 - Atualizado em 10/04/2011 =
21h04   =20
</P>
<H1>        Rede Globo incentiva preconceito contra animais    </H1>
<TABLE id=3D"colunista">
  <TBODY>
  <TR>
    <TD style=3D"padding-right: 15px;"><IMG =
id=3D"dinamicContent_imgColunista"=20
      alt=3D"Simone Rauber W=C3=BCrfel" =
src=3D"http://www.zulupa.com.br/files/colunistas/9d71f004-ee63-4f8e-96a6-=
4acfb97908bc.jpg"></TD>
    <TD><SPAN id=3D"dinamicContent_lbColunista">Simone Rauber =
W=C3=BCrfel</SPAN><BR> =20
                    Formanda em Medicina Veterin=C3=A1ria pela =
Universidade Federal=20
      de Pelotas<BR></TD></TR></TBODY></TABLE>
<P>	No cap=C3=ADtulo do dia 04 de abril de 2011 da novela Insensato =
Cora=C3=A7=C3=A3o, tivemos=20
o desprazer de assistir uma cena lament=C3=A1vel. Na cena em =
quest=C3=A3o, aparece uma=20
gata tricolor em cima do cap=C3=B4 do carro de Carol (personagem =
gr=C3=A1vida da atriz=20
Camila Pitanga), a qual pede a uma amiga que retire o animal do local =
porque ela=20
n=C3=A3o pode chegar perto, pelo risco de contrair toxoplasmose.<BR>	=
=C3=89 impressionante=20
o fato da emissora de maior audi=C3=AAncia do pa=C3=ADs, assistida por =
milh=C3=B5es de=20
brasileiros, que possui grande influ=C3=AAncia na forma=C3=A7=C3=A3o de =
opini=C3=B5es e que faz=20
quest=C3=A3o de divulgar que tem responsabilidade social, permitir a =
exibi=C3=A7=C3=A3o de uma=20
cena preconceituosa como essa, produzida por uma equipe completamente=20
desinformada sobre o assunto.<BR>	Infelizmente, n=C3=A3o =C3=A9 a =
primeira vez que os=20
gatos s=C3=A3o acusados de serem os respons=C3=A1veis pela toxoplasmose, =
o que n=C3=A3o =C3=A9=20
verdade.<BR>	A toxoplasmose =C3=A9 uma doen=C3=A7a causada pelo =
Toxoplasma gondii,=20
protozo=C3=A1rio encontrado na natureza que pode infectar =
mam=C3=ADferos, aves e o=20
homem.<BR>	O gato e outros fel=C3=ADdeos s=C3=A3o os =C3=BAnicos =
hospedeiros definitivos, ou=20
seja, nos quais o parasita pode realizar todo seu ciclo de vida. Quando=20
infectados, eliminam os oocistos (forma infectante) nas fezes, que =
contaminam o=20
ambiente. No entanto, os felinos somente eliminam o protozo=C3=A1rio na =
primeira vez=20
que s=C3=A3o infectados, o que normalmente ocorre quando filhotes pela =
ingest=C3=A3o de=20
presas contaminadas, com dura=C3=A7=C3=A3o de poucos dias. Depois disso, =
adquirem=20
imunidade e n=C3=A3o eliminam mais o agente nas fezes.<BR>	O homem pode =
contrair a=20
doen=C3=A7a somente se entrar em contato com as fezes infectadas do gato =
ap=C3=B3s 3 dias=20
expostas no ambiente, e ainda assim teria que ingeri-las ou =
acidentalmente=20
colocar a m=C3=A3o na boca, o que pode ser tranquilamente evitado com =
medidas b=C3=A1sicas=20
de higiene. N=C3=A3o existe a possibilidade de contamina=C3=A7=C3=A3o =
somente por encostar ou=20
acariciar um gato.<BR>	O principal modo de transmiss=C3=A3o da =
doen=C3=A7a =C3=A9 por via=20
digestiva, pela ingest=C3=A3o de oocistos esporulados nos alimentos, no =
solo e na=20
=C3=A1gua, ou por ingest=C3=A3o de carne contaminada com cistos. Ainda =
pode ocorrer por=20
ingest=C3=A3o de =C3=A1gua contaminada, transfus=C3=A3o de sangue ou =
transplante de =C3=B3rg=C3=A3os. A=20
forma mais comum de contamina=C3=A7=C3=A3o =C3=A9 pela ingest=C3=A3o de =
carne crua ou mal cozida e=20
verduras mal lavadas.<BR>	Mulheres gr=C3=A1vidas, ao contra=C3=ADrem a =
doen=C3=A7a durante a=20
gesta=C3=A7=C3=A3o, correm o risco de aborto ou nascimento de beb=C3=AAs =
com uma s=C3=ADndrome=20
conhecida como T=C3=A9trade de Sabin. M=C3=A3es previamente infectadas =
n=C3=A3o podem=20
transmitir a doen=C3=A7a para os beb=C3=AAs, a menos que ocorra uma =
reagudiza=C3=A7=C3=A3o devida =C3=A0=20
imunossupress=C3=A3o. Estima-se que hoje, 90% das pessoas adultas =
j=C3=A1 tenham tido=20
contato com o agente e, portanto, possuem imunidade contra ele. =
Normalmente,=20
quando a doen=C3=A7a =C3=A9 adquirida pelos animais ou pelo homem =
n=C3=A3o ocorrem sinais=20
aparentes, passando despercebida. No entanto, pode causar a morte de =
indiv=C3=ADduos=20
imunossuprimidos ou levar =C3=A0 formas graves da =
infec=C3=A7=C3=A3o.<BR>	A toxoplasmose pode=20
ser evitada com medidas higi=C3=AAnicas como, lavar as m=C3=A3os antes =
das refei=C3=A7=C3=B5es, usar=20
luvas durante o manuseio do solo e carnes, cozinhar ou curar carnes de =
forma=20
adequada, lavar bem as frutas e vegetais crus, destinar adequadamente as =

excretas dos gatos, de prefer=C3=AAncia com uso de caixa de areia =
trocada diariamente=20
e com luvas, alimentar seu gato com ra=C3=A7=C3=B5es seguras e controlar =
os roedores.<BR>
	N=C3=A3o h=C3=A1 risco algum de contrair a doen=C3=A7a pelo contato =
direto com gatos. Qualquer=20
pessoa, inclusive mulheres gr=C3=A1vidas, pode tranquilamente conviver =
com gatos sem=20
se preocupar com o risco de contrair toxoplasmose atrav=C3=A9s dele.<BR>	=
=C3=89 preciso=20
esclarecimento e bom senso quando o assunto s=C3=A3o os animais, pois =
informa=C3=A7=C3=B5es=20
equivocadas podem levar ao abandono e at=C3=A9 mesmo ao sacrif=C3=ADcio =
de muitos deles.=20
&nbsp;&nbsp;</P>
<P class=3D"clear">        &nbsp;</P>
<TABLE class=3D"imagem-box" width=3D"100">
  <TBODY>
  <TR>
    <TD><IMG id=3D"dinamicContent_rptImagens_imgArquivo_0" =
alt=3D"Campanha da PEA - Projeto Esperan=C3=A7a Animal."=20
      =
src=3D"http://www.zulupa.com.br/files/colunas/38b266db-6c30-4dd2-8043-93e=
0d1fa32ab.jpg"><SPAN=20
      id=3D"dinamicContent_rptImagens_lbTitulo_0">Campanha da PEA - =
Projeto=20
      Esperan=C3=A7a Animal.</SPAN></TD></TR></TBODY></TABLE>
<DIV id=3D"dinamicContent_pnComentarios">
<P>            &nbsp;</P>
<H6>            Coment=C3=A1rios</H6>
<P>                    Em uma sociedade como a nossa a falta de =
conhecimento,=20
geram atitudes de preconceitos  e generaliza=C3=A7ao como essa em rede=20
nacional....uma vergonha!!parabens muito bem escrito....</P>
<P><SPAN id=3D"dinamicContent_rptComentarios_ltCriadopor_0"=20
class=3D"font-11-cinza">Luciane - 14/04/2011 11h39</SPAN></P>
<P>            &nbsp;</P></DIV>
<DIV id=3D"dinamicContent_pnComente" class=3D"form-box" =
onkeypress=3D"javascript:return WebForm_FireDefaultButton(event, =
'dinamicContent_btnEnviar')">
<H6>            Comente estE ARTIGO</H6>
<DIV style=3D"display: none;" id=3D"dinamicContent_upComentario">
<P><IMG id=3D"dinamicContent_imgLoading" =
src=3D"http://www.zulupa.com.br/layout/imagens/loading.gif"></P></DIV>
<DIV id=3D"dinamicContent_upForm">
<P class=3D"font-11-vermelha"></P>
<TABLE>
  <TBODY>
  <TR>
    <TH>                            Mensagem                        =
</TH>
    <TD><TEXTAREA style=3D"width: 480px;" =
id=3D"dinamicContent_tbMensagem" cols=3D"20" rows=3D"6" =
name=3D"ctl00$dinamicContent$tbMensagem"></TEXTAREA><SPAN=20
      style=3D"visibility: hidden;" id=3D"dinamicContent_rfvMensagem" =
class=3D"required"=20
      title=3D"Campo obrigat=C3=B3rio"><IMG id=3D"dinamicContent_Image1" =
src=3D"http://www.zulupa.com.br/layout/imagens/asterisco.gif"></SPAN></TD=
></TR>
  <TR>
    <TH>                            Nome                        </TH>
    <TD><INPUT style=3D"width: 400px;" id=3D"dinamicContent_tbNome" =
name=3D"ctl00$dinamicContent$tbNome"=20
      type=3D"text"><SPAN style=3D"visibility: hidden;" =
id=3D"dinamicContent_rfvNome"=20
      class=3D"required" title=3D"Campo obrigat=C3=B3rio"><IMG =
id=3D"dinamicContent_Image2"=20
      =
src=3D"http://www.zulupa.com.br/layout/imagens/asterisco.gif"></SPAN></TD=
></TR>
  <TR>
    <TH>                            E-mail*                        </TH>
    <TD><INPUT style=3D"width: 400px;" id=3D"dinamicContent_tbEmail" =
name=3D"ctl00$dinamicContent$tbEmail"=20
      type=3D"text"><SPAN style=3D"display: none;" =
id=3D"dinamicContent_rfvEmail"=20
      class=3D"required" title=3D"Campo obrigat=C3=B3rio"><IMG =
id=3D"dinamicContent_Image3"=20
      =
src=3D"http://www.zulupa.com.br/layout/imagens/asterisco.gif"></SPAN><SPA=
N=20
      style=3D"visibility: hidden;" id=3D"dinamicContent_revEmail" =
class=3D"required">=20
                         E-mail inv=C3=A1lido.</SPAN></TD></TR>
  <TR>
    <TH></TH>
    <TD><INPUT id=3D"dinamicContent_btnEnviar" class=3D"botao-preto" =
title=3D"Enviar coment=C3=A1rio" =
onclick=3D'javascript:WebForm_DoPostBackWithOptions(new =
WebForm_PostBackOptions("ctl00$dinamicContent$btnEnviar", "", true, =
"comentario", "", false, false))' =
name=3D"ctl00$dinamicContent$btnEnviar" value=3D"Enviar" =
type=3D"submit"></TD></TR>
  <TR>
    <TH>                            &nbsp;                        </TH>
    <TD>                            &nbsp;                        =
</TD></TR>
  <TR>
    <TH>                            &nbsp;                        </TH>
    <TD class=3D"font-11-cinza">                            * n=C3=A3o =
ser=C3=A1=20
      publicado.                        =
</TD></TR></TBODY></TABLE></DIV></DIV>
<P class=3D"clear">                &nbsp;</P><A =
id=3D"dinamicBannerRodape_hlBannerRodape"=20
target=3D"_blank"><IMG style=3D"width: 605px; height: 100px;" =
id=3D"dinamicBannerRodape_imgBannerRodape"=20
src=3D"http://www.zulupa.com.br/files/anuncios/5ab9db61-e296-4b1f-8767-a3=
02ed2b08e9.jpg"></A>
<DIV id=3D"rodape">
<P id=3D"menu-rodape"><A id=3D"rptMenuRodape_hlMenuRodape_0" =
title=3D"Not=C3=ADcias" href=3D"http://www.zulupa.com.br/noticias"=20
target=3D"_self">Not=C3=ADcias</A>                                       =
             |=20
                                                   <A =
id=3D"rptMenuRodape_hlMenuRodape_1"=20
title=3D"Fotos e Agenda" =
href=3D"http://www.zulupa.com.br/fotos-e-agenda" target=3D"_self">Fotos=20
e Agenda</A>                                                    |        =
       =20
                                    <A =
id=3D"rptMenuRodape_hlMenuRodape_2" title=3D"Gospel"=20
href=3D"http://www.zulupa.com.br/gospel" target=3D"_self">Gospel</A>     =
           =20
                                   |                                     =
       =20
       <A id=3D"rptMenuRodape_hlMenuRodape_3" title=3D"Destaque Zulupa" =
href=3D"http://www.zulupa.com.br/destaque-zulupa"=20
target=3D"_self">Destaque Zulupa</A>                                     =
         =20
     |                                                    <A =
id=3D"rptMenuRodape_hlMenuRodape_4"=20
title=3D"Educa=C3=A7=C3=A3o" href=3D"http://www.zulupa.com.br/educacao"=20
target=3D"_self">Educa=C3=A7=C3=A3o</A>                                  =
                  |=20
                                                   <A =
id=3D"rptMenuRodape_hlMenuRodape_5"=20
title=3D"Colunas" href=3D"http://www.zulupa.com.br/colunas"=20
target=3D"_self">Colunas</A>                                             =
       | =20
                                                  <A =
id=3D"rptMenuRodape_hlMenuRodape_6"=20
title=3D"Dicas" href=3D"http://www.zulupa.com.br/dicas/geral"=20
target=3D"_self">Dicas</A>                                               =
     |   =20
                                                <A =
id=3D"rptMenuRodape_hlMenuRodape_7"=20
title=3D"Minha Hist=C3=B3ria" =
href=3D"http://www.zulupa.com.br/minha-historia" target=3D"_self">Minha=20
Hist=C3=B3ria</A>                                                    |   =
            =20
                                    <A =
id=3D"rptMenuRodape_hlMenuRodape_8" title=3D"Charges"=20
href=3D"http://www.zulupa.com.br/charges" =
target=3D"_self">Charges</A></P>
<P><A id=3D"hlSoluty" class=3D"float-right" title=3D"Soluty =
Comunica=C3=A7=C3=A3o &amp; Design"=20
href=3D"http://www.soluty.com.br/" target=3D"_blank"><IMG =
title=3D"Soluty Comunica=C3=A7=C3=A3o &amp; Design"=20
alt=3D"Soluty"=20
src=3D"http://www.zulupa.com.br/layout/imagens/soluty.gif"></A><STRONG>Zu=
lupa.com.br</STRONG>=20
=C2=A9 2010. Todos os direitos reservados.<BR><A id=3D"hlContato" =
href=3D"mailto:contato@zulupa.com.br">contato@zulupa.com.br</A>-=20
(55) 3512 8658 / 9125 7338</P></DIV></DIV>
<DIV id=3D"barra-anuncios">
<P>
<OBJECT id=3D"fcBannerLateral1" =
codeBase=3D"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swf=
lash.cab#version=3D7,0,0,0"=20
classid=3D"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width=3D"160" =
height=3D"190">
<PARAM name=3D"movie" =
value=3D"/files/anuncios/1e10ccd9-559a-43d5-831f-74fd4c4a3ce3.swf">
<PARAM name=3D"wmode" value=3D"Opaque"><PARAM name=3D"quality" =
value=3D"High"><PARAM=20
name=3D"play" value=3D"True"><PARAM name=3D"loop" value=3D"False"><PARAM =
name=3D"menu"=20
value=3D"False"><PARAM name=3D"scale" =
value=3D"Showall"></OBJECT></P><INPUT =
id=3D"rptBannersLaterais1_hfArquivo_0"=20
name=3D"ctl00$rptBannersLaterais1$ctl00$hfArquivo" =
value=3D"1e10ccd9-559a-43d5-831f-74fd4c4a3ce3.swf"=20
type=3D"hidden"></DIV>
<DIV id=3D"footer" class=3D"clear"></DIV></DIV>
<SCRIPT type=3D"text/javascript">=0A=
//<![CDATA[=0A=
var Page_Validators =3D  new =
Array(document.getElementById("dinamicContent_rfvMensagem"), =
document.getElementById("dinamicContent_rfvNome"), =
document.getElementById("dinamicContent_rfvEmail"), =
document.getElementById("dinamicContent_revEmail"));=0A=
//]]>=0A=
</SCRIPT>

<SCRIPT type=3D"text/javascript">=0A=
//<![CDATA[=0A=
var dinamicContent_rfvMensagem =3D document.all ? =
document.all["dinamicContent_rfvMensagem"] : =
document.getElementById("dinamicContent_rfvMensagem");=0A=
dinamicContent_rfvMensagem.controltovalidate =3D =
"dinamicContent_tbMensagem";=0A=
dinamicContent_rfvMensagem.validationGroup =3D "comentario";=0A=
dinamicContent_rfvMensagem.evaluationfunction =3D =
"RequiredFieldValidatorEvaluateIsValid";=0A=
dinamicContent_rfvMensagem.initialvalue =3D "";=0A=
var dinamicContent_rfvNome =3D document.all ? =
document.all["dinamicContent_rfvNome"] : =
document.getElementById("dinamicContent_rfvNome");=0A=
dinamicContent_rfvNome.controltovalidate =3D "dinamicContent_tbNome";=0A=
dinamicContent_rfvNome.validationGroup =3D "comentario";=0A=
dinamicContent_rfvNome.evaluationfunction =3D =
"RequiredFieldValidatorEvaluateIsValid";=0A=
dinamicContent_rfvNome.initialvalue =3D "";=0A=
var dinamicContent_rfvEmail =3D document.all ? =
document.all["dinamicContent_rfvEmail"] : =
document.getElementById("dinamicContent_rfvEmail");=0A=
dinamicContent_rfvEmail.controltovalidate =3D "dinamicContent_tbEmail";=0A=
dinamicContent_rfvEmail.display =3D "Dynamic";=0A=
dinamicContent_rfvEmail.validationGroup =3D "comentario";=0A=
dinamicContent_rfvEmail.evaluationfunction =3D =
"RequiredFieldValidatorEvaluateIsValid";=0A=
dinamicContent_rfvEmail.initialvalue =3D "";=0A=
var dinamicContent_revEmail =3D document.all ? =
document.all["dinamicContent_revEmail"] : =
document.getElementById("dinamicContent_revEmail");=0A=
dinamicContent_revEmail.controltovalidate =3D "dinamicContent_tbEmail";=0A=
dinamicContent_revEmail.validationGroup =3D "comentario";=0A=
dinamicContent_revEmail.evaluationfunction =3D =
"RegularExpressionValidatorEvaluateIsValid";=0A=
dinamicContent_revEmail.validationexpression =3D =
"\\w+([-+.\']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";=0A=
//]]>=0A=
</SCRIPT>

<SCRIPT type=3D"text/javascript">=0A=
//<![CDATA[=0A=
=0A=
var Page_ValidationActive =3D false;=0A=
if (typeof(ValidatorOnLoad) =3D=3D "function") {=0A=
    ValidatorOnLoad();=0A=
}=0A=
=0A=
function ValidatorOnSubmit() {=0A=
    if (Page_ValidationActive) {=0A=
        return ValidatorCommonOnSubmit();=0A=
    }=0A=
    else {=0A=
        return true;=0A=
    }=0A=
}=0A=
        Sys.Application.add_init(function() {=0A=
    $create(Sys.UI._UpdateProgress, =
{"associatedUpdatePanelId":"dinamicContent_upForm","displayAfter":500,"dy=
namicLayout":true}, null, null, $get("dinamicContent_upComentario"));=0A=
});=0A=
=0A=
document.getElementById('dinamicContent_rfvMensagem').dispose =3D =
function() {=0A=
    Array.remove(Page_Validators, =
document.getElementById('dinamicContent_rfvMensagem'));=0A=
}=0A=
=0A=
document.getElementById('dinamicContent_rfvNome').dispose =3D function() =
{=0A=
    Array.remove(Page_Validators, =
document.getElementById('dinamicContent_rfvNome'));=0A=
}=0A=
=0A=
document.getElementById('dinamicContent_rfvEmail').dispose =3D =
function() {=0A=
    Array.remove(Page_Validators, =
document.getElementById('dinamicContent_rfvEmail'));=0A=
}=0A=
=0A=
document.getElementById('dinamicContent_revEmail').dispose =3D =
function() {=0A=
    Array.remove(Page_Validators, =
document.getElementById('dinamicContent_revEmail'));=0A=
}=0A=
//]]>=0A=
</SCRIPT>
</FORM></BODY></HTML>

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.zulupa.com.br/layout/imagens/zulupa.gif

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

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.zulupa.com.br/files/anuncios/56df2686-0d43-49f0-b897-bf3effcbb3ab.jpg

/9j/4QrPRXhpZgAATU0AKgAAAAgADAEAAAMAAAABAl0AAAEBAAMAAAABAGQAAAECAAMAAAADAAAA
ngEGAAMAAAABAAIAAAESAAMAAAABAAEAAAEVAAMAAAABAAMAAAEaAAUAAAABAAAApAEbAAUAAAAB
AAAArAEoAAMAAAABAAIAAAExAAIAAAAcAAAAtAEyAAIAAAAUAAAA0IdpAAQAAAABAAAA5AAAARwA
CAAIAAgACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzADIwMTE6MDM6
MDkgMDg6NDQ6MDEAAASQAAAHAAAABDAyMjGgAQADAAAAAf//AACgAgAEAAAAAQAAAl2gAwAEAAAA
AQAAAGQAAAAAAAAABgEDAAMAAAABAAYAAAEaAAUAAAABAAABagEbAAUAAAABAAABcgEoAAMAAAAB
AAIAAAIBAAQAAAABAAABegICAAQAAAABAAAJTQAAAAAAAABIAAAAAQAAAEgAAAAB/9j/7QAMQWRv
YmVfQ00AAv/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgR
DAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4U
EQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIABoAoAMBIgAC
EQEDEQH/3QAEAAr/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAA
AAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFC
IyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE
1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyEx
EgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl
4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhED
EQA/ACt+ul9tzqKui2vsDfUbOS3Vug09HHsa/wCksK/o/V/rPdkdZtcMfGeW1dNNj91YAcPWobvZ
Va+ihnrfpmUs9XJ/0yz+t2MxMPGY0vF+U+3LDyXB7MWfsuFUHN9Nv62+m/Ns9n/cRXXfW/Ky/q5d
iZuXcep47qzg3a7r2F7PUpzbg3ex2Kxj3+t6vqZG+v8A0SgjjmBxCuI19GSMo36tkx+0/VvGt/Zr
ftzS5r823c52Iytrrsapj6atr6b8v6Tn+t6uNXVV/wByfTWt0r6y4vVq4v24OaxzWtZvdsfuH6L0
cmz6Nrtj/wBXus9b2fofWWZ07qOa3qeJhNwzfX17Ga+3HeS+1lHvtdk1s/wlnpi+yv1a9+TX/Nfz
tar/AFa6R1yl2bit6c7Lw79rDa4AVubW9w3tGRt9avY/9L6Vfq0f6P6abKEpQNxJmKI8f3l0iLsH
Q7jt+69dZ1G+ma8qbSDBJEWD8m/+2qPUc/EqoNxcXT9FgadxP7v7rVUwqMjd6DMlv2ZldjwMguLW
ipr37Rd/O423Z6T/AG3Y9P8AOfZlfs6JlEvr9kiWCt8y9wcKXUtAbZVY/wBTd9Cyz/hPT9alLFPI
B+8O53YZxB8Hn39SssnY0MDhEcmT33K503DNsWuaS0cT3KsM+q2W+0msVNc0s31l5MGx78etrmBr
nt/SV2LZow8ikU1WMaPUDyyCSIrb6lnDP3P9Hv8A9H/OpuXF7hsrIxcPqNA2kFsLl8tpYSPBd71T
pmUWOI9IEN3AOfBPH0fb/LZ/wf8Ao/0P6Vc31D6s9SGRa1rqnBrnhhe70t7WgOr2ts9zLrvf7LvT
p/wv2m2mz1UceOUDoNFsg8y9pKt4te4bVpH6sdU+1W4W2v1qBSX+5wEXu2Uc1er/AF/Uqr/c/nr8
aq+bugZ/T6LMnIdSGU/zjG2EvAFjcff6ewf4Sxn/AAuz6dXqfo1LkiZQNbrNR0TdMo4A5XR04rmt
B7qHSfq7n0B1mQ2sOYSIa/fw31t3sHu9n0dvvWzZjPpdssjtxxqJiQqUMOSJuTLEaNNlgqYS4w1o
JcfICXK1S4OAcDLSAQfI6hcr1DJ6jjNtvfkm1mRkX000AgMYyskOF7mDfv2Ob6dG7/hbbP8ABK/9
u6hRmY2Oyyu2u9lfo4/pBj3Pc5mOzHOW+/0qd3vs+0+h/wAFXRa9Txx8UeMfKTKIPeWM8E6/uyVG
VkjYitPCXy/4z0jDJVlrg0DzMLl7PrO1mDkZNGO8Cqu1rLbHMc0ZVdFub9mfTU/1LaNmO/8AW6X+
l/1r9MrGL9YMgXHFzaZvY+42PhuKKqKKsXKuycyp92a1v6PN3VfZ8i71a/8AQfpPTcIFe9Q1ECws
T6x+r6PqYVlU5Yw8l9jnNqqLm0XU2WWuoZd+tMy6WY7LsbF33/ofWZ+h9Yn1b6zd1Vl7nndXUzEf
S9zQ2xwyMduTYcgVfod/qfR9FlbNidGJCX//0Mb6/wBHSsfKxMOjHDcwVMfdkiRNLW/Z8evZ/NP/
AJv3ez2eksnp2NRdg5ddlDn3TUKLWh0tcbK22s3tPpta/He9/v8AW/4Nav8AjC/5dw+P6GP6387b
9Jcxb9EcfRPH0ufzf/Rajx/IN9yzS+c7bPoX+LrGNHVetvFIOVjinGxhc47q6JtG0ep73s9Omj27
voV+lWum6n1PqVOFkOur33V7rKyXBrSB7q6f0e57W/m+79IqP1X/AKXl/S+jV/P/ANJ+hZ/SP9f5
z1VY+tX/ACVlc/Rb9Hn6dfCcOLgH71LJcPEe1uU0uyamXWkNbkE2PfW0V1B7jJa1j/Uv3Nd9Lf8A
11m9Q6RXa2G2uaBqGy3kfAB7Vc6Z/Mu+A+h/Nc/4T/u0ny/5o/znf+b+l/Y/4RRRr9KrWT302civ
18N7Td+lZH85EO/tT9Jagz6HVEggjvHPzWSP5ofz30x/O8f9aUH/AEu3f6H+v0VFO+I8K3WtGt1j
L+0P2BsVt7eKy66WOcGtaCToBAVzM7/FVa/9ZUkL/S3YZdbbD8T0hD2iROngrPTqK35LPaIBnhRu
/mmc/R/O5Uunfz7efkpTdeK0Vb2vT7BWwNgADhW78llbNxICzMX6A5+aWf8A4P6X8EzTrTZF051n
Tcd9mTax1hOS59rqXFrqy87nN9rq/wA17/0b93qVrVppotoFeRVXaHVtrsbY1rwWja41u3bmuZ6j
N+399Va+Vq9J/pI/mvon+f8Ao/2f+ES01r+RWw4a9O1n7f0mOF03BGbZdspJyg2kg01u20ilmG3F
b/3V/R+o+j+af/NfQV5nTcbGLqqaaKmAPFTWY9bWsFpHrtDGANcy6tlddzP8N6f6VaWT/Nj+Z5HP
0v8ArP8Awn7ihlfT7fxTDxcQ8l7Sxul9NpsY9mHitdUQ6ksx6mFjgNvqVua36e1rPf8A8Gr2Nj4+
ONuPTXQ0hoIqY1gIYNlQPphv80z2V/6NiGxHbx/cpAl//9n/7RGmUGhvdG9zaG9wIDMuMAA4QklN
BAQAAAAAAA8cAVoAAxslRxwCAAACAAAAOEJJTQQlAAAAAAAQzc/6fajHvgkFcHaurwXDTjhCSU0E
OgAAAAAAmwAAABAAAAABAAAAAAALcHJpbnRPdXRwdXQAAAAEAAAAAFBzdFNib29sAQAAAABJbnRl
ZW51bQAAAABJbnRlAAAAAENscm0AAAAPcHJpbnRTaXh0ZWVuQml0Ym9vbAAAAAALcHJpbnRlck5h
bWVURVhUAAAAEwBFAFAAUwBPAE4AIABUADEAMQAxADAAIABTAGUAcgBpAGUAcwAAADhCSU0EOwAA
AAABsgAAABAAAAABAAAAAAAScHJpbnRPdXRwdXRPcHRpb25zAAAAEgAAAABDcHRuYm9vbAAAAAAA
Q2xicmJvb2wAAAAAAFJnc01ib29sAAAAAABDcm5DYm9vbAAAAAAAQ250Q2Jvb2wAAAAAAExibHNi
b29sAAAAAABOZ3R2Ym9vbAAAAAAARW1sRGJvb2wAAAAAAEludHJib29sAAAAAABCY2tnT2JqYwAA
AAEAAAAAAABSR0JDAAAAAwAAAABSZCAgZG91YkBv4AAAAAAAAAAAAEdybiBkb3ViQG/gAAAAAAAA
AAAAQmwgIGRvdWJAb+AAAAAAAAAAAABCcmRUVW50RiNSbHQAAAAAAAAAAAAAAABCbGQgVW50RiNS
bHQAAAAAAAAAAAAAAABSc2x0VW50RiNQeGxAUgAAAAAAAAAAAAp2ZWN0b3JEYXRhYm9vbAEAAAAA
UGdQc2VudW0AAAAAUGdQcwAAAABQZ1BDAAAAAExlZnRVbnRGI1JsdAAAAAAAAAAAAAAAAFRvcCBV
bnRGI1JsdAAAAAAAAAAAAAAAAFNjbCBVbnRGI1ByY0BZAAAAAAAAOEJJTQPtAAAAAAAQAEgAAAAB
AAIASAAAAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAAHjhCSU0E
GQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTScQAAAAAAAKAAEAAAAAAAAAAjhC
SU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAA
BgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA////////////////////////
/////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////
////A+gAAAAA/////////////////////////////wPoAAA4QklNBAgAAAAAABAAAAABAAACQAAA
AkAAAAAAOEJJTQQeAAAAAAAEAAAAADhCSU0EGgAAAAADSwAAAAYAAAAAAAAAAAAAAGQAAAJdAAAA
CwBCAGEAbgBuAGUAcgBfAHMAaQB0AGUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA
Al0AAABkAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxs
AAAAAgAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABM
ZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAABkAAAAAFJnaHRsb25nAAACXQAAAAZzbGljZXNWbExz
AAAAAU9iamMAAAABAAAAAAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElE
bG9uZwAAAAAAAAAGb3JpZ2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAA
AABUeXBlZW51bQAAAApFU2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABS
Y3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAZAAA
AABSZ2h0bG9uZwAAAl0AAAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dl
VEVYVAAAAAEAAAAAAAZhbHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAI
Y2VsbFRleHRURVhUAAAAAQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAA
B2RlZmF1bHQAAAAJdmVydEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAA
AAtiZ0NvbG9yVHlwZWVudW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRz
ZXRsb25nAAAAAAAAAApsZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAA
AAALcmlnaHRPdXRzZXRsb25nAAAAAAA4QklNBCgAAAAAAAwAAAACP/AAAAAAAAA4QklNBBEAAAAA
AAEBADhCSU0EFAAAAAAABAAAAAE4QklNBAwAAAAACWkAAAABAAAAoAAAABoAAAHgAAAwwAAACU0A
GAAB/9j/7QAMQWRvYmVfQ00AAv/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUP
DAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4O
EBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/A
ABEIABoAoAMBIgACEQEDEQH/3QAEAAr/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsB
AAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFR
YRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD
03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUG
BwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC
0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5en
t8f/2gAMAwEAAhEDEQA/ACt+ul9tzqKui2vsDfUbOS3Vug09HHsa/wCksK/o/V/rPdkdZtcMfGeW
1dNNj91YAcPWobvZVa+ihnrfpmUs9XJ/0yz+t2MxMPGY0vF+U+3LDyXB7MWfsuFUHN9Nv62+m/Ns
9n/cRXXfW/Ky/q5diZuXcep47qzg3a7r2F7PUpzbg3ex2Kxj3+t6vqZG+v8A0SgjjmBxCuI19GSM
o36tkx+0/VvGt/ZrftzS5r823c52Iytrrsapj6atr6b8v6Tn+t6uNXVV/wByfTWt0r6y4vVq4v24
OaxzWtZvdsfuH6L0cmz6Nrtj/wBXus9b2fofWWZ07qOa3qeJhNwzfX17Ga+3HeS+1lHvtdk1s/wl
npi+yv1a9+TX/Nfztar/AFa6R1yl2bit6c7Lw79rDa4AVubW9w3tGRt9avY/9L6Vfq0f6P6abKEp
QNxJmKI8f3l0iLsHQ7jt+69dZ1G+ma8qbSDBJEWD8m/+2qPUc/EqoNxcXT9FgadxP7v7rVUwqMjd
6DMlv2ZldjwMguLWipr37Rd/O423Z6T/AG3Y9P8AOfZlfs6JlEvr9kiWCt8y9wcKXUtAbZVY/wBT
d9Cyz/hPT9alLFPIB+8O53YZxB8Hn39SssnY0MDhEcmT33K503DNsWuaS0cT3KsM+q2W+0msVNc0
s31l5MGx78etrmBrnt/SV2LZow8ikU1WMaPUDyyCSIrb6lnDP3P9Hv8A9H/OpuXF7hsrIxcPqNA2
kFsLl8tpYSPBd71TpmUWOI9IEN3AOfBPH0fb/LZ/wf8Ao/0P6Vc31D6s9SGRa1rqnBrnhhe70t7W
gOr2ts9zLrvf7LvTp/wv2m2mz1UceOUDoNFsg8y9pKt4te4bVpH6sdU+1W4W2v1qBSX+5wEXu2Uc
1er/AF/Uqr/c/nr8aq+bugZ/T6LMnIdSGU/zjG2EvAFjcff6ewf4Sxn/AAuz6dXqfo1LkiZQNbrN
R0TdMo4A5XR04rmtB7qHSfq7n0B1mQ2sOYSIa/fw31t3sHu9n0dvvWzZjPpdssjtxxqJiQqUMOSJ
uTLEaNNlgqYS4w1oJcfICXK1S4OAcDLSAQfI6hcr1DJ6jjNtvfkm1mRkX000AgMYyskOF7mDfv2O
b6dG7/hbbP8ABK/9u6hRmY2Oyyu2u9lfo4/pBj3Pc5mOzHOW+/0qd3vs+0+h/wAFXRa9Txx8UeMf
KTKIPeWM8E6/uyVGVkjYitPCXy/4z0jDJVlrg0DzMLl7PrO1mDkZNGO8Cqu1rLbHMc0ZVdFub9mf
TU/1LaNmO/8AW6X+l/1r9MrGL9YMgXHFzaZvY+42PhuKKqKKsXKuycyp92a1v6PN3VfZ8i71a/8A
QfpPTcIFe9Q1ECwsT6x+r6PqYVlU5Yw8l9jnNqqLm0XU2WWuoZd+tMy6WY7LsbF33/ofWZ+h9Yn1
b6zd1Vl7nndXUzEfS9zQ2xwyMduTYcgVfod/qfR9FlbNidGJCX//0Mb6/wBHSsfKxMOjHDcwVMfd
kiRNLW/Z8evZ/NP/AJv3ez2eksnp2NRdg5ddlDn3TUKLWh0tcbK22s3tPpta/He9/v8AW/4Nav8A
jC/5dw+P6GP6387b9Jcxb9EcfRPH0ufzf/Rajx/IN9yzS+c7bPoX+LrGNHVetvFIOVjinGxhc47q
6JtG0ep73s9Omj27voV+lWum6n1PqVOFkOur33V7rKyXBrSB7q6f0e57W/m+79IqP1X/AKXl/S+j
V/P/ANJ+hZ/SP9f5z1VY+tX/ACVlc/Rb9Hn6dfCcOLgH71LJcPEe1uU0uyamXWkNbkE2PfW0V1B7
jJa1j/Uv3Nd9Lf8A11m9Q6RXa2G2uaBqGy3kfAB7Vc6Z/Mu+A+h/Nc/4T/u0ny/5o/znf+b+l/Y/
4RRRr9KrWT302civ18N7Td+lZH85EO/tT9Jagz6HVEggjvHPzWSP5ofz30x/O8f9aUH/AEu3f6H+
v0VFO+I8K3WtGt1jL+0P2BsVt7eKy66WOcGtaCToBAVzM7/FVa/9ZUkL/S3YZdbbD8T0hD2iROng
rPTqK35LPaIBnhRu/mmc/R/O5Uunfz7efkpTdeK0Vb2vT7BWwNgADhW78llbNxICzMX6A5+aWf8A
4P6X8EzTrTZF051nTcd9mTax1hOS59rqXFrqy87nN9rq/wA17/0b93qVrVppotoFeRVXaHVtrsbY
1rwWja41u3bmuZ6jN+399Va+Vq9J/pI/mvon+f8Ao/2f+ES01r+RWw4a9O1n7f0mOF03BGbZdspJ
yg2kg01u20ilmG3Fb/3V/R+o+j+af/NfQV5nTcbGLqqaaKmAPFTWY9bWsFpHrtDGANcy6tlddzP8
N6f6VaWT/Nj+Z5HP0v8ArP8Awn7ihlfT7fxTDxcQ8l7Sxul9NpsY9mHitdUQ6ksx6mFjgNvqVua3
6e1rPf8A8Gr2Nj4+ONuPTXQ0hoIqY1gIYNlQPphv80z2V/6NiGxHbx/cpAl//9kAOEJJTQQhAAAA
AABVAAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEwBBAGQAbwBiAGUA
IABQAGgAbwB0AG8AcwBoAG8AcAAgAEMAUwA1AAAAAQA4QklNBAYAAAAAAAcABgAAAAEBAP/hDRZo
dHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVN
ME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0
YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8x
Mi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9
IiIgeG1sbnM6Y3JzPSJodHRwOi8vbnMuYWRvYmUuY29tL2NhbWVyYS1yYXctc2V0dGluZ3MvMS4w
LyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4
bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8v
cHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5j
b20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
c1R5cGUvUmVzb3VyY2VFdmVudCMiIGNyczpBbHJlYWR5QXBwbGllZD0iVHJ1ZSIgcGhvdG9zaG9w
OkNvbG9yTW9kZT0iMyIgeG1wOkNyZWF0ZURhdGU9IjIwMTEtMDMtMDlUMDg6MDU6MTAtMDM6MDAi
IHhtcDpNb2RpZnlEYXRlPSIyMDExLTAzLTA5VDA4OjQ0OjAxLTAzOjAwIiB4bXA6TWV0YWRhdGFE
YXRlPSIyMDExLTAzLTA5VDA4OjQ0OjAxLTAzOjAwIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHht
cE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RkM5NTM0ODc0MjRBRTAxMThEOTFCRkU4RUQ3MUQ0NjUi
IHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RkM5NTM0ODc0MjRBRTAxMThEOTFCRkU4RUQ3MUQ0
NjUiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpGQzk1MzQ4NzQyNEFFMDExOEQ5
MUJGRThFRDcxRDQ2NSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDph
Y3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDOTUzNDg3NDI0QUUwMTE4
RDkxQkZFOEVENzFENDY1IiBzdEV2dDp3aGVuPSIyMDExLTAzLTA5VDA4OjQ0OjAxLTAzOjAwIiBz
dEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHN0RXZ0OmNo
YW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9u
PiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/7gAOQWRvYmUAZEAAAAAB
/9sAhAACAgICAgICAgICAwICAgMEAwICAwQFBAQEBAQFBgUFBQUFBQYGBwcIBwcGCQkKCgkJDAwM
DAwMDAwMDAwMDAwMAQMDAwUEBQkGBgkNCgkKDQ8ODg4ODw8MDAwMDA8PDAwMDAwMDwwMDAwMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCABkAl0DAREAAhEBAxEB/90ABABM/8QBogAAAAcBAQEB
AQAAAAAAAAAABAUDAgYBAAcICQoLAQACAgMBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAIBAwMC
BAIGBwMEAgYCcwECAxEEAAUhEjFBUQYTYSJxgRQykaEHFbFCI8FS0eEzFmLwJHKC8SVDNFOSorJj
c8I1RCeTo7M2F1RkdMPS4ggmgwkKGBmElEVGpLRW01UoGvLj88TU5PRldYWVpbXF1eX1ZnaGlqa2
xtbm9jdHV2d3h5ent8fX5/c4SFhoeIiYqLjI2Oj4KTlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq
+hEAAgIBAgMFBQQFBgQIAwNtAQACEQMEIRIxQQVRE2EiBnGBkTKhsfAUwdHhI0IVUmJy8TMkNEOC
FpJTJaJjssIHc9I14kSDF1STCAkKGBkmNkUaJ2R0VTfyo7PDKCnT4/OElKS0xNTk9GV1hZWltcXV
5fVGVmZ2hpamtsbW5vZHV2d3h5ent8fX5/c4SFhoeIiYqLjI2Oj4OUlZaXmJmam5ydnp+So6Slpq
eoqaqrrK2ur6/9oADAMBAAIRAxEAPwD6ISRrJHJJbzRkcT6gRQWPQ779APbOIy7k07aN0l6eugVW
qQVDF/kSdjtkApS2WRiDNLzjjEhjUEEmp3HSvhka6sh3KMsnNGRIpaEhTJQAbmtOJIb5bZCXJLz3
zZ+aGl+QfLWp6z5s1F7Xy5oSPPJLTgw2FIoxVObudlArXI4uLJLgG9s5AAW/BH83fzS1z84fO2se
b7y5njikYwaTbNIWMVnEzGCNQSacQetOpr13zstJphgxiPV12XJxnZ5zBHdiz9C5BuzcJ6qxseRU
SK1HZ6/h7DMq2oXW7cmjsksAin+pSLGkvFAFBJC1J7dTT/bx4x1ZcHcnlzLqNnNppvPUt05CKHUL
YABpBRgXjp3qKEEfTlBEZAjvbyTEgv02/wCcVf8AnKbzFrN7r35ffmvrtkdBi0u5vbXzVeTi2e39
P00jgRXeNHTpQVHEcmO3IjV6jSxxC47A9G0ZZTO/N9byahoGpaF5r0zS9M1LzVZa9pt1baTq2nad
cvCWukdI5Y7ohwQjEMHQ122qKjNb4sYEguSRI0RsU88v3fm6CLRLHzHYXF//AId0W20u98y3cccF
xqjRgETSIJJJKjfdxXeprU5r9TqOIgjo2QjQNnclPryyttWj9fT5eMiAtNZk0YNXcAGvt3/pmMYR
ybx6LZGxYDe+tFK4gNGavw0opAHGhUjbceO2YxNbJ581DRvOWs+W7uMW87QvIwW4iryWXpU77GgG
1a5maLtDLpZXHl8P1Fxs+njlG723Q/zX8vazGsWpzJpd2x4guaRt7gkmlfn92ddo+3sebaex+J/Q
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
2Q==

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.zulupa.com.br/files/colunistas/9d71f004-ee63-4f8e-96a6-4acfb97908bc.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcU
FhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCABkAGQDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwBrY2HP
Za5bxuR/wj1yQecp/wChCunkYBD7r/hXKeNmB8P3AHdk/wDQhXLygctpMANvvP8AEam0+3Anvs9p
v/ZVqbSh/oMP+7U1gAZrs9/O/wDZVrGT3Ga3ha3hlvJofLDSmXC56E7RXqumeFrhRG8yHgZZiMfQ
CuJ+Huj3D+JtPcxnZcTM8ffcFwp/IivevGGs6dpNuqXk3kkgDOxsfmBXPUjzK52UNNGcbLaWqqUk
APoDXP8AiLw7aX9hINqB9pwQOa05LuC7Hm20qyRtyGU5FVJ8tGfLkzjqtY8rjqbSimeJ6fYPYaxd
WE4/dn95Ec8cdRWu9kCKPEjovjOzggGGEbO59iDV5unFdCbaTZwVFaRjvaDDewqpFbyCFGLHccOD
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

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.zulupa.com.br/files/colunas/38b266db-6c30-4dd2-8043-93e0d1fa32ab.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcU
FhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAHHAUIDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD5VpKK
KACiiigAorV8MaHeeJfEFho2mLGb29lEUQkbau4+p7V6gf2bviKJNn9n2RH94XiYoA8aorsviP8A
DvXPh5d2Vr4iW1E13G0sYgl8zgHBzxxVPwJ4H17xzqpsPDli1zIg3SyMdscK+rseB/M9qAOZor2r
xB+zd470jTHvIYrHUfLXc8FpMTJ74BA3fhzXjEiNHIySKyupIZWGCCOxFADKK76f4T+KYvh9H4zF
tBLojxCbdFKGkVCcbivoD19KZ8O/hZ4n+IFne3fh+2gNraMEkluJfLUsRnavqQOvpkUAcJRT5EMc
jI2Nykg/hXqHw/8Agb4y8a6ZHqVnbQWWnS8xT3rlPNHqqgEke/SgDyyiu/8AiR8JvFXw/jS41uzR
9Pdtq3lq3mRBuwY9VJ9xXHaLplxrGr2WmWSq11eTJBEGbaC7EAZPbk0AUaK9rH7NPxDIz9m0wH0+
2DP8q8/8eeAPEngW6ih8S6a9qJc+VMpDxyY64YcZ9utAHKUV1Xw98Ca14+1S40/w7HBJcwQmdxNK
IxtyBwT3yRVTxt4V1LwX4hn0XXFhW+hVXcRSb1AYZHI9jQBgUUtdh8Nfh5rnxE1G7svDy2/mWsPn
SvcSbFAJwBnB5P8AQ0AcdRXR+PPCGqeB/EU2ia6kS3kaLJmJtyMrDIIOBn0+oNc8iliFUEsTgAdT
QA2ivTNR+CvjHTPAlz4q1OyjtbOBFkNtI/7/AGE43FOwGQcE5x2rjfB3hu/8XeI7PRNIERvrssIx
K+xeFLHJ+gNAGLRXY/Ef4da/8PL2ztvEcUCtdxmSJ4JN6Ng4Izgcjjj3FWvhv8LfEvxEhvZvDsNu
YbNlSSS4l8sbmyQBwcnAz+VAHCUVpeI9HuvD+u3+kX/l/a7KZoJfLbcu5Tg4PcV1Pw4+Ffin4g+Z
JoNmgsom2vd3D+XEG/ug9SfYA+9AHCUV6v48+A/jPwdpcmp3Ntb39hEN0stk5cxDuWUgHHuM4ryk
0AJRXpPw8+DHi7x1pzajpdpFb6dg7Li6fYJSM8IMEtyMZ6e9eevbyR3bW0iFJlfy2RuCrZwQfxoA
gor2gfs1/EJlVkttNZWAIIvFrlPiL8KvE3w+sbO78Rw2qQXUhijMMwk+YDOD6cUAcFRRRQAUUUUA
FFFFABRRRQAUUUUAa/hXxBfeF9etNY0lo0v7Vi0TyRhwpIIzg8d6+3vg54x1rxJ8EbzxBq90JtVR
bsiYRquCgJXgDHFfBYr7c/Z0hz+zdKuP9al9/Nh/SgD5K8ceO/EHjiazm8TXou5bRGjifylQgE5O
doGa+tvh3NY/Cj9m6LxBHbLNdS2q38gPBmmlICKT6DKj6A18Q19r/Bi90f4qfAdvCF9P5d3aWwsb
hEP7yMKcxSgHqOF/EEUAcj8Evj/4j8RfEKz0TxOtpNaak5jhaCERmB8Er06qcY556c1xH7Xfhu10
P4mpe2Uaxpq1sLmRFGAJAxVj+OAT7k1658If2eP+EK8Yxa/rWrw37We5rSKGIoAxBG9yT2B6Dv34
rxP9qPxjaeLfiU6aXKk9jpcIs0mTkSOCS5B7jJxn2oA9c/ZQ8f2+v+HJvAWtpHJLawP9mDL8s9uc
70b3G78Qfauv+Jeu6P8AA34UJpvhuERXU++Cwib5iZG5eVz325z9dornP2ZvCeleCfhvceO9amiW
e9t2maY/8u9spPyj3YjJ/wCAiuo1WPQv2gfhDLLYgW9wGZoPMwXtLhM4DY7EYz6hqAPjz4U6HF4q
+JegaVfAvb3V2vnj+8g+Zh+IBH419UftH/FrUfhy+laH4VhtobyeHzmlkjDLDEDtVVXpzg/QCvk/
4fa7/wAIf4/0bWJlLJp92rSqvUoDh8fgTX2D8ZPhXZfGLT9G13w/rEEFwkOIrgrvinhY5Gccgg5/
Mg0AL8GfGP8Awuj4b6zp3im0hNymbS6Ma4SVXXKuB/Cw/mARXyF4Qt20z4o6NbFsva6xDET6lZgP
6V9jeEPD2j/AL4Xand6jfrcXBJnnmI2efNtwkUan8h9Sfp8aeDriS++JOiXMuPNuNWhlbHq0wJ/n
QB9bftS/EDxF4DtfDb+Gb1LVrqWbzt0SvvChMDkH+8as/FiQ+K/2ZJdW1+1SG/awgvtpXb5c2V6A
8jOSMehrq/jD8QNC8AWel3PiPS5r+K6mZIvLiR/LZQDn5j79q+Zvjr8eD4+0VdC0GxmsdJZxJcST
sPMm2nKrgcBc89TnAoAsfsXvj4l6iv8Ae01//Q0rkv2nJTL8a/EOf4GiQf8Afpa6z9jAZ+JmoH00
1/8A0NK7X4r/ALPviTxn8RdY12y1HS7ezvHRo1lZ94ARVOQF9R60AfJg619ifsy2lt4F+DGs+MdW
RlS6L3LYHzGGIFVA+rbvzFfMPifwfe6F49uPCfmxXd/Fcpah4gdru23GM8/xV91a/b+C/Cvw80zw
z4yu7O30Y26WojuJCgmMYBOMc9QD+NAHjn7Y/h+PU9B8PeM9PUPHtFtK6jrHIN8bH2zuH/AhXzz8
L7/T9L+Inh291kIdPgvonmLjKqob7x9hwfwr7j1/TvD/AMQfg9qej+FLm2vNNFqba0aBt6xyRAFF
ye4IX86+D/Cfhy98T+JrPQrFoIb66kMSfaX2KGAPBODzxjHrQB9fftZXHiiHwRaah4ZvpE0T5o9S
S3wS8cgAVie6ckH/AHhXzh+zg+z42eFj6zuPzievq/V7OD4e/s8Xel+K9QjvjbabJaGRuBK7hgka
55OMgDvgZr5S/Ztj8z42eF/9maRvyiegD6n/AGovBx8VfDG5ubWIvqGkN9shCjLMo4kUf8B5/wCA
it34C+Dx4L+Gek2MsYS+uF+13fHPmPg4P+6ML+FRHxSdO+O7eG7mUi31TSI7i3VjwJo3fIH1TP8A
3zS+CfE//CRfFnxvbQvus9HitbGPB4L5kaQ/Xd8v/AaAPiX4oI978WfEsUf35dWmjXPqZCBX118T
/FEXwS+Emk2fh60hN4QlnaiRcorbdzysO5zk+5NfIvxW32nxX8UNGdskeqTup9D5hIr681vSNI+P
/wAIdOks71ba7XbKkmNxt7hVw8br6cn8MGgDn/2b/jHq3j7VtR0DxVHbzXSQG5hniiCB0BCsjL0/
iGD9a+avjb4ct/CnxR1/SbFQlpHP5kKD+BHUOF/Ddivq74LfCGz+Eq6rr2vatb3F4YSjThfLit4R
8zcnkk4GT7V8kfFfxMnjH4i61rcGRbXU+Id3H7tQFUn8ADQB9kG81DXP2ebWf4ZXSwX6adEIBCBu
UxgCSNfR+GA9/rXwnf3d1d6pNd38jyXkkpkmeT7zPnkn3zX3H+zj4E1L4d+ENQk17VbSWC9ZbtEg
k3QwIF5fecDkYJI4wBXxx8QL2x1j4ia7e6QoXT7rUJHgAGAVLnBA9+v40AfenjO18V6j4IsU8C6j
a2GrHyXaW5XKmPb8w6Hnp2r5i/aRg+IGn+H9EtfH2taXqEUtw8lulpFtdWVcEk7Rxhq+nvHWh+JN
Y8E2ll4O1saLqkflN57DIZAuCvQ47du1fMX7QXgjxtpHhbT9V8c+LrfWRFc+RbwKhDKXGWIOB/cF
AHz/AEUUUAFFFFABRRRQAUUUUAFFFFACiur0X4h+LdD0UaRpGvXtppoDAW8bAKNxJbt3JNcpijFA
AetaGg63qfh/Uo7/AES+uLG8j4WWByrY9D6j2NZ+KSgDv9f+MHjvXtNaw1HxHdtauuyRIgsW8ejF
QCa4GjFGKAOhn8aeI5/DMfh2bWbx9EjAC2Zf92ADkDHpnmjwv4z8ReFEuU8OazeaclzgyrA+A5Gc
Ej15Nc7RQA53LuWYksxySe5rrfB3xG8WeDoWg8O61c2lsx3GDIePPrtYEA/SuQooA6Lxf408ReMJ
0m8Satc35jz5ayNhE/3VHA/KsSyup7K7gurSRoriB1kjkU4KMDkEe4IqHFAFAHS+KPHPibxXawW/
iLWrrUYYXMkaTMCFYjGRx6VzVGKXbQBr+GPE2s+Fr6S88PajcafcyJ5bSQnBK5BwfxArqk+M/wAR
F6eLNQ/Eqf6VB4e+FXinxB4dj1nTbSJ7WVtsSvKFeQZwWAPYH3rlfEOi3nh/WrvS9TQR3dq+yRVO
RnqCD3BHNYU8VRqzdOE05LdJ6ouVOUUpNaMml8S6xL4mPiGTUJjrXnC4+18B/MHRvSrHirxj4h8W
tbnxJq11qJt93lee2QmcZwPfA/KsDFGK3IOn8MePvFPhWyks/D2uXun2sj+Y0UL4UtgDOD3wB+VY
a6jdrqi6ktw634m+0CcHDCTdu3fXPNVMUYoA6bxr478R+NblJvEuqz3vl/6uI4WND6qgwAffFZGg
6xqGg6pDqWj3ctnfQ58uaI4Zcgg4/AmqAFBFAHS33jvxPf8AiGy1281q7n1eyAFvdO2XjAJOB7cn
86NA8d+KPD9zf3Gi63eWc1+/m3TxPgyvknLe+WP51zNLigC1qmoXWq6jcX2ozvcXlw5klmc5Z2PU
mtTwl4v1/wAI3b3PhzVbmwkcAOIm+Vx/tKeD+IrBxSUAdl4w+Jfi/wAX2otdf1y5ubTIPkLiOMkd
yqgA/jXHUlKBmgDrNQ+InirUPClp4budauTo1tH5SWykKGXsrEcsB2BNcojFHDKcMpyD6GkIoxQB
3w+MXxBAAHizU8AYH7wf4Vj+KfHnifxZZwWniPWrrULeF/MjSYjCtjGeB6E1zNFACUUuKDQAlFFF
ABRRRQAUtJXvHwX8M+HtP8DX3jLxVbw3MaOyxiZN6xouASF6FixwK48djY4Kl7WSb1SSW7b2RrRp
OrLlR4Rikr6T8Y6N4I1L4T6x4l8PaRbL5o8yKUIY3ik3qhGM8Y/u9Oc96+bj1qcvx8cdCUoxceV2
ae90OtRdJpXvfU9M+Dvw0Pjaae91GWW30e2YIxixvmfrsUnpgdT7ivQPHPwU8PQeHb6/0G7ns7iz
iaVvPmEkT7RkqTjKn+varfhOeXR/2bZ7zTGMd19mnkEidVYybS31A/lXz1aa3qdnYX1lbX06Wl8o
W5i3/LKAc8/iOteNSeNzDFVKlKtyRpy5eW1723v/AF9x1S9lRpxjKN21e5mn26UmK9Z/Z38OaX4i
8TaimtWUN7bwWoKxyg7QxcDPHtn866b4ReFfD+seK/G8OpaRbXFvZ3QW3ikBxEu+QYHPoB+Veji8
4o4aVWMk37NRb/7edkYU8NKootPe/wCB5R8MtDsvEnjbTdJ1NpltblmVjEwDcKSME+4q78XfDNh4
S8YyaXpTTtbLBHJmZgzbmGTyAKt/CMKvxi0ZYgFQXcgUDsNr4FXf2iWz8T7z2t4B/wCOCpeIqf2p
Gkn7jhe3nfcfJH6u5W1ueZYor6o1DSPh54b8MaFrOuaLZwxtHGI9sJkMjvGCSwz82OTz0rz/APaB
8F6To0Wma74fgitrS9YxSQw/6stt3K6jsCM8e1Z4TPaWJrRpcko810m1o2t0Opg5Qi5XTt+p4vii
vf8A4T+HfDOg/DmTxj4rtYbnzWbb50fmCNA2xQqngsxzzVr4k6H4Ml+Edz4h8N6TbJ9okSSCdFKu
haQBlxngDBG3oO1N55TWI9goSa5uXm6c3b5AsJJw57ra9utj53Ar3Dwd8ItM8SfDKLVree7GuXMU
jQqXAi3q7ALjGeQuOvevDz1r6u+E+rW+ifBTS9SviVtYC/mMP4VM5Xd9BnP4VnxFisRhqFOWGdpO
aXro9PmVgqcKk2p7WPHPg34DsPGGtarY6293btZRq2yEhW3b9pByD0riPFFjDpniTVLC1LmC2uZI
ULnLFVYgZ96+u9G8Kx6X8R9S1+x2C01S0UTKp6TB1O4ezLz9c+tfJXjVi3i/XD63s3/oZqMpzOWP
xVSSl7nLF27N7jxNBUacdNbs9q+AHhibU/DR1K71bWLRIrlo7NLS68tEGB5h2kEHJI/KvEvF1neW
HijVbTUZZJruG5dJJJG3M5BPzEnrnrX1BpbzeB/BHgrTre2kkkuLmCG62RltqyZaRjjpyw5PpXkv
7Smi/wBn+NodRjUCPUoAzEf89E+Vv02n8a5cqzCdXMain8E78v8A267fjuaYmio0I23Vr/M5j4We
A5/HOtSQmVrbTrVQ91cAZIB6Ko7sefyJr2vVfgV4WuNPkg0ye8tL5RhZnmEgDdt646H2xWd8BXbT
vhHr+oWKhr1ZZ5AMZJZIht/LrXmnwY1rUx8U9LdbmeV7+Yx3W5i3mqwJJb1x19sUYurjsVWrzw9X
kjR2Vt3a7uFONKnGCnG7l+BxOvaTd6FrF3pmox+Xd2shjkXtkdx7HqKoYr1b9pWGOP4ipJHgPNYx
PJjucsv8gK474b+H08UeNNM0mZmW3mkzMV67FBZsfgMfjXv4bGqpg44qponHmf3XZxTpNVXTXex2
LeEvB/hzwPNdeJtWW81++tlks7SwkDNbkjK7u313dsgZNeUnpX15/wAI/wCHvEEur+FP+ETNhZWi
hIb/AOzBFdsYzG+MkgkcknPNfJmpWr2OoXVnKQXt5XiYjuVJB/lXDk2P+te0Um+bR622a0tbb037
m2Ko+z5bWsVa9e+DfgPQvFHhfW9T1lbp5rJmEaxS7FwIy3PGeoq5+zz4S0rU49W1/XYIbm3sSI44
5xuRTt3M7DvgYx9a9W8Map4Z1nwp4k1DwjAtvFJFKtzGIvKy6xNhtvQZHcda484zeUHLD0FJNOKc
lsrtafca4XDJ2nO2t9D5AbHakxXe/Bbwpb+LvG0NpqCl7C3ja4mQHHmAYAXPoSRn2zXuE2keBPHk
GteHdIsrSDUNNBjWaC3ERicZAKsPvLuGDmu/HZzSwdb2Uot2ScmtopuybMaWFlVjzJ+nmfKNdj8M
PBFz44182ccv2ezgXzLq4xnYucAAd2J4H4+lcnNG0Uzxv95GKn6g19GfsyqsHg7X7qFA9z9p6Y5O
2MlR+ZNaZzjJ4PByq0vi0S+btcnC0lVqqMtjR1D4EeF7iwe3064vra/CjbM8wk57b0x0PtivmrVL
GTTNTu7Kdo2ltpWicxtuUlTg4PcV2Xw4/t/xH4/I0/XJdP1W8WZ3u33Nu+Ukgjv/AErK8ceErjwv
4tOhy3cd5cERnzUUqCXwQMHnvWOXKthq0sPia/tJNJ2tZrv8i67jUipwhZbHLmkAr6mvtE+HvgjT
tL8O6/YwSXOoKI2uHh3yM3AMjP1QbjgY6V5x+0XoGj6BrGjw6Lp0FiZbd2mEIIDkNgHHTPHalg88
p4qtGlGEkpXs3s0uoVMI6cHJtaWv8zlv+Fe35+Ha+MEu7Q2PIeAlhIPn2ccYPPvXEnrX1r4Uk8KJ
8GdNbUfKbw6sKfahKrlfO3DfkDn/AFnpXz/4c0Gx8V/FFdKsWEelXN7IVMeRiBSW+XPI+UcUsuzW
Vb27rppU3LW1lZdPVdR1sMo8nI/iRxVJX1udN+Huqavd+Bo9Ls0vIIdzCODaycDJWTqXAIJr5c8S
6W+ieINR0uRtzWk7w7v7wBwD+Iroy7NYY6ThyOLSTs+qezM6+HdFJ3TXkZdFLRXqHOJX0J8EdW0P
xB8Pr7wZrs8UL7nKrJIIzJGxByhP8SsM/lXz5Tu1cWYYJY2l7Ny5WmmmujWzNaNV0pc1rn054tTw
zpXwT1vRfDupW00FuCmDcK0kkolUt9fwGOOK+YjRRU5dgPqMZR53Lmbld76lV63tmna1lY98+APj
TSxolx4S1+WCJHZ2tzcECOVH+/GSeAe4z1ya6Dxj4b+HnhDwbra+Vbxy30JWICYTTl+qCPJO0AgE
n06mvmPtS59TXDVyNSxLr06soKTTlFbNr+tTWOLtT5JRTtsz1f8AZy16y0bxldQ6jcxWqXtt5cck
rBV8wMGAJPAzg17P4Qh8IaH4i8Sf2VrVvJfXkgubsSXCbItxYhVboeSxPUjIr5BpO1GYZHDG1J1P
aOPMkmlazs9Ao4t0oqPLe36nefCmaGD4vaVLNNFHAt3ITI7hVA2t3PFWv2gJ4Ln4l3sltNFPGYIQ
HicOv3BnkV5yTR7V6H1JfWlir6qPLb53uY+1fs/Z263PrvXfDuh+J/AvhrTfEV79jUwwSW8glWNi
4iG5QW4OVrzb9onxNpdxZ6R4b0eeKdbI+ZK0T71jwuxEyOCcZJ/CuN8d/EZvFnhXRtFbTEtRp20i
YTF9+2PZ0xx615/0rx8qyWdKca2Ik7xcmo6WTb308vxOnEYpSTjBbpa+h9FfCXUNA8XfC+Twfrtz
FDLbswKNKI2ZC29ZEJ4yDkH/AOvVr4kt4dtfgfcaX4c1C1mtLaWOOJROrSOyy/OcdTzk5xj8K+a6
K6HkcfrHt41Go8yny9L9fvI+tvk5XHW1rgetfQ1jfWK/syy2pvbUXRtn/c+cvmZ+0ZxtznpXzzS1
347AxxigpStySUvu6GNKq6V7LdWPp34B+PLbUfDq6RrN7BBfabtWN7iUJ5sP8OCT1Xp9MV4tY2Vt
rPxc+zTTwpaTaq7PKzgJ5YkLE56cgVxVKawoZTTw1atWpO3tPwfdfeXPESnGMZfZPrHx58X9J8J6
tHYxWzakXiErPaXC7EBJwpPPOBXN/HS50vxR8M9O1ixvLVp4HjuEh85DIEkGGUrnOQcZ+lfONAri
w3DeHws6dWlJqUHq+/yvoazx06ilGS0f4HsP7P3jmz8PXt3o2tTJBYXzCSKaT7kcoGMN6Kw4z7Cv
X7PQfAfgq5uvEUBsrJnUkzG58wKD1ES5PX0H0r4/oJ4AyeK0x2QxxVaVWFVwU/iS+1b+vMmljHTi
ouN7beR03xG8THxb4vv9WCNHDIwSBG6rGowoPvgZPuad8MvEEXhfxxpeq3IY2sUhSbaMkIwKsR9M
5/CuXo6V6/1Wl7D6sl7tuW3laxze0lz8/Xc+wNaittSMusJ8Qrqz0RoSyw2tzGiL8vBDfe687cZ7
V8iXDF7iRmlMrFiTIc5fnrz69aiorjyzLf7Pi48/MtLaJWS9N35mtev7Z3tY9u/Z08T6XZwav4d1
qeG3S+PmRNM21JCV2shbsSMY/GvSvD9j4R8L+H9f0XQNVtWkaGSWfzbpGbc8bBRnocAYwPx618kd
qSuTF5DHE1pVY1HFSs2uja2ZpSxjpxUXG9v1PQvgh4ptPCnjeKfUn8qyuomtpZccR5IKsfbIGfrX
uB/4Qz4dx674ms76GS51AF1iS5WUuxJYJGBzgscknpXybRWuOyaGMq+1c3FNJSS+0k7omjinSjy2
v28h88rTTySv952LH6k5r1P4B+O7XwrrF1YavL5Om3+0+cRxDKvRj/skEgntxXlGKUcCvQxeEp4u
jKhU2ZjTqSpyU47o+v7TQfAXh7VpPE9vNp1pcHc/ni9BjG4clVzjnJ6eteE/G/UrWf4mtqOl3UF3
D5NvKksLhlJVRxkfSvNqK83AZL9Vre3nVc5W5de2hvWxXtI8kYpLc+sNZPgbx3puj+KdX1CGNLLD
lftARgSQTE69T83p/KvOf2nrq1vNc0KS1ure4ItpA5hkV9vz8ZweOteK96OlTg8jjha0KqqNqF7J
7JPoOri3Ug48q1td+h9K/DBfD/iH4KLoWranBbx75FuQbhY5I/3m8N83bpXknhnWdL8H/FeO+sZH
uNFtbt4lkzuZoDld3ucHNcKaM100MrjTlW5ptxqXbXa+5EsQ5KNlZx6n14IfBGla/eePf7WtjLPB
8zrcKyNkAEog+bewAGK+V/FOqtrniPUtUZSv2u4eYKewJyB+VZdGaWW5UsFJzlNzbSSb6RWyFXxD
qpK1lv8AMbRS0V6xzmh/Y2qf9A29/wC/D/4Uf2Lqn/QNvf8AwHb/AAr7uEj/AN9vzpGmIYBpcFug
Lcn6etfArjWT0VH8f+Aez/ZS/mPhL+xdU/6Bt7/4Dt/hR/Yuqf8AQNvf/Adv8K+65J/LRnkm2Ioy
zM+AB6knpThMzAFZCQeQQ2QRR/rpK1/Y/j/wA/spfzHwl/Yuqf8AQNvf/Adv8KP7F1T/AKBt7/4D
t/hX3b5jf32/OjzH/vt+dL/XWX/Pn8f+AH9lL+b8D4S/sXVP+gbe/wDgO3+FH9i6p/0Db3/wHb/C
vu3zGx99vzo8x/77fnR/rrL/AJ8/j/wA/spfzfgfCX9i6p/0Db3/AMB2/wAKP7F1T/oG3v8A4Dt/
hX3b5j/32/OjzH/vt+dP/XWX/Pn8f+AH9lL+b8D4S/sXVP8AoG3v/gO3+FH9i6p/0Db3/wAB2/wr
7sWYsMpLuGcZDZ59KXzH/vt+dD40kv8Alz+P/AD+yl/MfCX9i6p/0Db3/wAB2/wo/sXVP+gbe/8A
gO3+FfdvmP8A32/OjzH/AL7fnR/rrL/nz+P/AAA/spfzfgfCX9i6p/0Db3/wHb/Cj+xdU/6Bt7/4
Dt/hX3b5jf32/OjzH/vt+dL/AF1l/wA+fx/4Af2Uv5vwPhL+xdU/6Bt7/wCA7f4Uf2Lqn/QNvf8A
wHb/AAr7t8x8/fb86PMf++350/8AXWX/AD5/H/gB/ZS/m/A+Ev7G1T/oHXv/AIDt/hR/Y2qf9A29
/wDAdv8ACvuzzm3bRISw5xu5x60vmP8A32/Oj/XSS/5c/j/wA/spfzfgfCX9i6p/0Db3/wAB2/wo
/sXVP+gbe/8AgO3+FfdvmP8A32/OjzH/AL7fnR/rrL/nz+P/AAA/spfzfgfCX9i6p/0Db3/wHb/C
j+xdU/6Bt7/4Dt/hX3b5j/32/OjzX/vt+dH+usv+fP4/8AP7KX834Hwl/Yuqf9A29/8AAdv8KP7F
1T/oG3v/AIDt/hX3b5jf32/Ok84hlUyEM2cKW5P0FH+ukv8Anz+P/AD+yl/N+B8J/wBi6p/0Db3/
AMB2/wAKP7F1T/oG3v8A4Dt/hX3b5j/32/Oje/8Afb86X+ur/wCfP4/8AP7KX834Hwl/Yuqf9A29
/wDAdv8ACj+xdU/6Bt7/AOA7f4V92+Y/99vzo8x/77fnR/rs/wDnz+P/AAA/spfzfgfCX9i6p/0D
b3/wHb/Cj+xdU/6Bt7/4Dt/hX3b5j/32/OjzH/vt+dH+uz/58/j/AMAP7KX834Hwl/Yuqf8AQNvf
/Adv8KUaLqn/AEDb7/wHf/CvuzzH/vt+dPjd/MX526+tNcau9vY/j/wAeVL+b8D4AdSrFWBDDgg9
qbV7Www1m/D8sLiQH67jVGvvE7q5470CiiimIKKKKAFopaKAuffXauB8Wwaxf63cX2l2Kypoao1u
ZJGjZ5siSXYu358x4j6jkmu+7Vkx65GdV1e0njkgh0yGOZ7l+EKspY4PsB/OvxbLqs6M5VKcFJpd
ezaX43t8z6qslJJN2KHjiD+1/CO23+0+XPNavsjXDlDKhIZSD0B5BHbmqXim91K11a7is7i+ikji
g/sy3t4d0V25YiQSHaRxwMEjA5Fb2n67a3yXLQx3qSwRLO0MsDJK0bAlXVT94Ng4754plt4l0y40
u81CC6ZtPtwDJOEO0kgHav8AeYZAIHQnHWuujOtRShKjdRe3nLlt062t5puxElGTvzb/AKDYFvJv
Gl55l1cpp1vbwmKBQBFI7b95JxkkYXgHiuQEniM6Wbo6lq3nnTZ7zy/LXAnSbEaAbehXqvVutdif
EVgmnX95P9pt0sADcwzQlZYsgEEp1OQQRjrUN/4jjj0TVL22hm+0WG3zba6QxMpYrtyPQq2QauhK
vCVvYp/DHVLt6dbp39BSUWr83mYXj/VtWtZgulPexTpZieNYlJSSTeMqFCMXIGcqSoAOea6PxZLd
xaBcPpbyx3ReJUeJdzKGkUMQCD/CTUmsa9aaNcCO8Nyq/LulSImOMM21Sze59MnuaLjW7SDWl0w+
e93tRnEcZYRhyQpYjoCQeeQO+KybnJUnGj8N3/i238l+o0kua8tzC0satb69Akt9qNza/wBpXVmy
3Cgr5Cx7o3JCjndxu79Kr6TqmpzeNoYme9+wvPcxTxTKcRhR+7OAgVAccHcSwPNbt94nsLLUJLKR
b150kjgbyrdnUSOu6NMju3Yfnipv+Ehsm0u0vU+1SpdSGGGBIiZnkBIKbOxG1s9hit5TqyXNKh8a
svnfXb+rEqMVpz7amBc3Gow+FpJEnks5v7TmVnETJmLzWwCUUlARj59p9+ua3dGury58LQXPlTfb
2tmZY7nAdpADt3YAHJA7Dg9BSS+JNPj020vw88kd1IYIUSM+Y0gzlNpxgja2QfSpNQ1yzsoLSWYX
DtdgtDCkRMrALuYlTjGB1z9KxqurWSj7HVyb/wA16IqPLF35uhg6Ze6g3h/UpLC61O/1NLFZNl3b
BRHclTuRMgZIP8HIGBzzSW1/fjRvEcmm3eoXsMFor2dzcwkSmcoxdQCoLAHbxjgkiupTUrWfTE1F
LlGsTD54nJ+Xy8Z3flVHw/r0esvdAEpLEwdI3Uq/kN/q3Of72D06dKr27cak/YqyavtpqtNvK3Td
3uLk1S5jBhGtW2q4Oo6ncQQ39nEElRSskUsWZS2FGQG6H+HpVi51a/j8QHT1N1ubVogoEDFPshiB
Y7sY278jrnNbb63arqp09RcvKrLHJJHCWiidxlUZh0JHPpyM4zTR4gsm1L7AGuAxnNsJfKPkmYDc
Yg/Tdjt+HWm6tSfvSofZ7W7a7fP5gopaKfUwrhdYudedRqWpW9q+q/ZAkKqFW3MG4sCVPO/o/bpW
toNzqM/hCCeZGk1X7M/Eq7S8g3Bdw464GenWmz+KtPivJLRY9QmlSZ7bEVqzB5UXc0anuQvPpip7
nxHp8VlYXYeWdL5PMt0hjLPIoXcW28cAdc/SprKvUhCHsbbWdt7J/n+g48sW3zHN+FpLuXUtQu4J
r++vDo8QzfQmMC5DOTEMqOAxHHOPWrXgK91W8kn/ALSuJJ4xbxu4lV8xznO9QWRQP9wZxjrzW1ee
I7GG1sZ1a5u0vY2lthbRNKZEVdzEDsADnmi/8RWVvZWlxGZ7r7XC09ukETSM8YQMXI6hQCMn3rSr
Uq14ySofHZJ9uXR9PJ9upMYxg782xmXl3dr4rkhnutRgQPbiygtoN8VwhB80ucY4OQSSNoAI61Xl
vtTHiZ4vPvPP/tFIorMRf6O1kUBaUttxnO47t2QQBitW38SwjRtKuriK4a41C2FyttaRtKwXaGc4
/urkcn1Heti0uYru0huLWUSW0yLJGynhlIyDWMq0qKUp0tLcvS11p28n572ZSipPSXmctJLqy6+8
63V4bcawtmLbyx5X2YwglumT838WeOlQ3DXtjb+OpLKW9+3mUTWwKFgoMSBWjGMHkMMc9K7QE568
dKUEjGCeOlZLMFf4Fsl9zT7dbfiV7HzOQ8XTX2mWenWdpeak7usubrdhmYLlQ7IjEsSeFAAOOTVj
Srm+u7zwhNdxsGnspXuyYcbZNkfB4ymTu44z+FdOCQcgkfSg5PfPr71MsdF01BQV9de901+v4B7H
W9/6RgeDft0mjtc6pc3U11PNKSk6hREqyMqhRgYG0A85z1reo68nk0VxV6ntakp2td7GsI8qSCii
isigooooAKUHawb0OaSqOt6tZaFpVxqWq3C29nbrl3PX2UDux7CrpwlUkoQV29hSaSu9j44+Jlj/
AGb8QPEFqBhUvJGX6Mdw/Q1zFbvjnXf+Em8W6prAiMS3cxdIzyVXooPvgCsKv3DDKUaMFPeyv62P
k5tOTaCiiitiAooooAdRRRQB99dqy5tGt57vU5ZZJHi1G2W2nt+ApChl3A9QcMR6Vqdq4fVrvVE8
bPFLLrcVoDbfYIrCBXgnBz5xmJGBg4zkjA6c1+K5fSqVZyVOXLpf7mv1s/K1z6utJRtzK5v6fojW
huZW1O7nvZrdbVbqRUDwxrnbtAGCcnOT1NRW/hawttGvNJhkuRYXOGEZfJifgl0PXJYBznjdk965
jxVqOvx+OraPTBqiWkVzarIioWt5YWJ8xgAmMDjJZsg9BXQ6dHqU/wAQtXa6u76PSbVLcWtvgCCV
nQ+YScZbBA6Hg16VSniYw9rKqtYqf3NWW2+q9NfMwUoN8qjs7DdW8OTzaDrkEd7Lc6pqaIr3M22P
7mAoAUYUAZ/E1bfw7FPY6pBd3tzcS6kUM9ywVXITAUAAYAAH6k1zHhCTxH/bGjTapc6nLBdyX8d1
DOgEcKI/7kjgFSR0JPOaTwveeJ5vGs8eqPcpbCW5EsDxt5KxAjySh2hQcdwxLZOQK0lQxMVO1WPu
rm+52stOnLp02JU4Nr3Xrp/X3nQeI/Cdrrt/Lc3N1PH5kaRFVRG27W3AoWBKZPXHXAqxrPh2HVtU
t724uZl8h0kWNEThlOflfG5M9GAOCKx/Hf8AbT6hbRaRdahbW66deTubRR88yKDEpJB6nt36VF4X
n163/tj+0ZNSvQNMtruHzY1Dm4eJjLHHwBkMB8p6GohTxX1aFdVlorJdUm0u39IpygpuLizop9Ft
nvpr15pVZ7uC/YZAUNEu0D/dx1qFNCg/s+zjsr6aN7a4e8trqPa5DOWJ4I2spDsPpiuR8GXWuXun
eJ4dUOozQNYK9r9rRt+943DoGZVyc4BAGAenFdPoMd/afDjT47OHbqkOlIsUMoxiYRcKwP8AtVOI
pYjCv2bq3aaXlqvPts/mOEoT1Ue5NL4agfQotMS5l8tZGlkeWNJfPdiSxkRhtOSxPbHGOlQ3nhOz
uNO0u1E8obTUMUM0qJOxVhhgwcEHOAc9iBisrwtd6rL4f1R7aXW7vUVtFdBq0AjUXWwlkj4BI3dR
90cYNReC7zVZJL43k+tz6aunI8sl9b7J0vOfMSEYGQB0GCAcYNaOji6fO1VXuO/q5b9Ot+u5KnTd
ly7r8jrm060TQX02c7rH7MbeQuwXKbcEkjAHHeqnhzQrbRYpHguPPEqIobyo41CKOPuAAk5yWPWu
P8MXWrXvhLxPJeTa3LeyW0ptbLUIDmBdrBFDFQJHY8kAYHAqzrsurRaT4Yh36pbWUmnst2dOg3TC
48lfLRl2nCltwIxjPBxU/Uq8Zywvtfilr2enNfa/+Ye2i0p8ux1Mekxvqb6jZ6jcpb3MiXEsMLKY
53VdobdjOCAMgHBwKYPDsP8Aaa3P2u5NsLs34s/l8sTkYL5xuxyTtzjJzXFudX034Z+ErK0i1S2u
mtxHM1srKYmVCQsgVWYZbGAAMnqQK7DQrnVbjwLZ3NwjHXGsNzJMmwmfacBl7fNioxFLEUKftI1E
024edk2rv7t90VCUJuzjra5Yi0G3iu0uFlmLrezX2DjG+WPYR9Mciqd14Ssp9N0m1Erq2mRmKCV4
o5SVIwdysCp6A57EVT8BXGqTm5/tKeeWIQxE+ckgKT8+YAXVfbKjIHY12HQVzYmticHW9n7S7j1X
z/zZpThCpG9tzKTRbdDppWSUfYIZII+nzK6hSW468Z4qtJ4cj+x6bDa311bS2Fu1pHPGFLPEyhWV
gRjnaDnsRW9ig1yxx1eO0v61/wA395fsoPoYLeHY0tdMjsr66tJ9PtzaR3CBGZoioBDBhgn5Qc9i
K1NOs4dOsLaytVK29vGsSAnJwB3PrVmis6mKq1Ycknpv/X3v72UoRi7oKKKK5ygooooAKKKKACii
igAooooAD+PrxXx98VfHWo+MdbkSdXtdNtXZLezPGzBwWf1c9/TpX2CeteSfH7w34c/4RS+126tU
h1gMiQzxHYZnJ6MOjcZOevHWvpuFsXQw+LUakLylon2/rucGYU5zp3i9FufL7daSnN1ptfqZ88FF
FFABRRRQA6iiigD76rDvfFGnWd3dWk7Ti5t54IDEI8mRpv8AVlBn5gcHJ7YNbg6Csa+8N6fe+JdO
12dZPt1jG0cYB+Rs5wWHcrlsema/EML7Dmf1i9raW79Pv2/E+sqc9vcIr/xdpVhry6PcTTC43xxu
6pmKJ5M7Fds8Fsccemai1nxjpekahNZ3S3rtbmJZ5IbcyRwtKcIrtngtSXng/TrrxMNbLzpcM0by
xKEKStGMKSSpYcddpGcc1heL/Bup6x4gmmsZYYNPvJLWS6YXTLvMLA5aLadxwMAhgPUHFenhqOXV
ZxUpNe7d3dve0v07Xtv0MJyrxTaXXT0Oj1rxbpWj6umm38swnIQyOibkhDttQyHtuPA606PxAZPG
1z4c+xXA8izS6NztJjyzEY9hx17nI7VX1vwfp2reIF1iWSeK4IRZVj2FZlRsqDuUlcZxlSMjg1oN
o0J8SvrSz3CTyWv2SWFWHlyICSpPGQQScYNc/wDsCgrXu4u9+ktLfr+Bf76/lf8AAraJ4psNX1K7
0+2W8hurePzmjuYfL3JkruHPTI74NUU8aWUHhTStZ1Is329/KiS2jPzvluAGIxwp6mn+F/BVh4cv
WurS6vJpDbm1xMUxs3bh91QSwOfmJJPenzeD7NvCtnoUd3dx2tr9x8I5bknDqylWHzHgj0rZ/wBm
qryptwutetrO/TvYle35b9dTdtb1LuwivUEqxSR+aBIhV1GM8qehrkh8S9CaETCHVhCYVuQ7WTAe
SW2+bnP3A3BPr0zXS6LpFto+h22lWZlNrBEYVMjbnIOckn15NYX/AAgel/2b9h8+98r+zBpWd67v
KEnmZ6fez+GO1ZYZZepTVe9r6W7ee5U/bNLk+ZoeJ/FOn+HRC2preNFINxmihLpGuQMscjuRwMn2
qWTV5R4wg0fy0aB9Pa883J3AiQKAO2MHNZ3irwTYeJbhJby6vYitt9lKwlCpTduB+ZTtbI6rgkcH
itg6TAdeh1YvL9pitDZhcjaULBskeuRSbwUaS5buVpX9fs2D965a7af8EhOrzf8ACZR6KY0MJ083
vmljuDCTZt9MY5qDR/Fdhqur3emW0d7FewRGYpNCYzIgbaWXn17HB5q8dLg/4SBdY3S/ahaGz25G
zYX359c5rG8L+CbDw5qn26zur2aUQvbqJihARn38kKCxB/iJJNJPBSpNyupKKtb+bW9/wBqqpabX
/Av6J4n07WZ7SLT3meS5tTdjMePLQPsIf+624EY9jTNF8VafrGrXWnQLdw3dvH5zLcw+Xuj3bd45
6ZHfBp+heGtO0S+1a7sVcS6nL5su48J1O1PRcsx+pqh4X8E6f4c1A3dpc3k7m3a12z7CPLL78HCg
k5/iJJPeqksvaqcrlsuX163/AC/EL1tL28yPSfGkWt+J9P0/Tra4ayurWe4W5niaPzBGwUGInhkO
Tz7Vc0zxdpepaqlhbG53SvJHb3DwFYLlo/8AWLG/RiOfyOKh0DwbZ6HqdpeW19qEwsoZLe1gnkVo
4InYMUUBQeCOCSTS6V4NsNN1OC6hub2SC1klltLOSQGG1eX77IMZ5yepOMnFa1nlr5uS9lHTzeu/
/kvZb+REfb6X7ljSfFWnatrN3plkLp5rZ3jklMWI9yHDDOcjHuBntW9XN2nhCyg8UnXmubuW7Hmb
EkK4Tfw3zBQzD0DEgdq6SuHGLDqS+rN2sr379Talz29/cKKKK4jUKKKKACiiigAooooAKKKKACii
igAryf8AaM0Uaj4Qt7uG2v7i7s5jsFv8yIrD5nkX0G0YI9fSvWKcjBWDN90cn6d67suxcsHiYV4q
/K9jKvTVWm4PqfATdaSr2uypPrV/LDGscT3EjKi9FBY4AqjX7UndXPlWrOwUUUUxBRRRQA6iiigD
76HGKMgkjI/CjtXF+JYLm21a6s7FJAniONIDIikiGVflkcn+HMJPPqor8QwmHWIm4OVv61+5XfyP
rKk+RXtc7MdsYI+tL0xXF+JNRvNMv5rawnltFtraD+zLSODet65YqyMcHoAowCMZ3Vb1rUbi38TP
byX9xZQqsBtIYbcSi8ZmIkDcc44GARgHdXUssnJRcXo1frtp5efS9texHtkrqx1GRnGRk8gZ60vF
cBrFzer8Q1YJEkkE0EFqHBJlgdcyEAISeS3O4BdoyK6DxreXVlpsElndC1zOFdz8u5cE7Q+1ghJA
5Ix24zRLLZKdKCkr1Ff0BVlaTtsbxIXJJAA6knpSg8Vxer37XuiaENTuLmw02/hZ72d7dS4cKGRG
XBC7jk9OcAcZrasr3U5PBqX0lsDrBsmlEBTbul2kqCvbPB2++KirgJ04Rm2tXb8Wv0d+2ncpVU21
5XNrNFcba6reHwxqlzpmoXWq3cMEbq0tqB5UjAeYFwBv28nZj5cYyc01tWvxoHiSXTL6a+jtQn2C
+khBZ2IG8Y2gPtJ64747Vf8AZdTX3lo0uq3t3Xn+dtiVXj2O0HPA60Z9a4rXBqLeG/GVjJeXk7Wq
j7NcBAsrK0auwG0YODkcDOOK1zLd3PiXTYba/mGmCw+0sVjXFw29VXcxHAKknAxUyy9qPNzrr9yi
pfjcFW8v6ubx60Ag9Dn6Vw2na7qE/jeC1WW4NnJc3MEsMqAeWEUlCFC/ICRwxYlgegro/CbyyWdw
Z1EbDULlQAmzKiUgHHfjnPeliMvnho3m10ennf8AyHCqpuyNY8fWjIrhNMurqy8HWSm+uo/+JlJB
fXbx7pLaIyvk4K8fwDdg4DZqy+r6uPCSXVm8l1qZvGisQ8G37egchN68bQy5Jbj7ue+K2nlU07Rk
mubl/wCD+H3a7EqurbdLnZGjiuRudUmGkaBLLqlzbWdyW+3agLcLJGwUkKVKkJl8r0P3QO+arXOt
3o0nwtJqt/LpX26SVbuaOAByqoxQ4IOzdhW6cZxUxyuo7Wa1bXXpfy8tt9V3G66O270orlLGW9vZ
vBdzqMbLcuLkzEoV6xEKzD+HIwcepqlpOu39z40htTLO1nLNcwywyqB5QQZQ7QvyZwcEsSw5wKby
ubUmpL3U2/k2tPuF7ddjuPxoz6VyPhrVb648V3tneXEtzH++YbE2pCFcBVZSoZGwcDlg3WsVNQ8R
nShdtqd2Zjpj3/l/ZUx5qTbVjxtztK9V6nrTjlE3Nwc0tu/W/l5B9YVtj0ij61x3i/V7+yvp1t7u
a02WaT2MMcHmC9uCxDRtwenyjaCD8xOeKXxNq2oWHiOxSO4lW3ZYt1pCgLszPhiMqRIMcEBlK4zz
UwyqpPls17yb+63+f36bjddK52GRQelcTrusaxb+Lns7eRYYFkt1tojki5Vj+8JAQlscjIZduMnr
W74ru5rK2tGhuJLS2ku0juruNA7QRHOWHBxkhRnBxnNZPLpp002vfV1/X9aj9srN9jYGOxzS157Z
3t/YeA7CWzklIm1KZZ7p18pkhaaQ+Zyp2Z+UZ2kDdnFdX4Suru90O2n1B1knYuBIqld6hiFbkDkj
HOAD1HWqxOXSoQdTmTSk4+el+nyCFZSdvK5r0HiuR8I67danfafbXMsjyJp8j3qtCU2XAlCgE4AB
254HbmsRdQ8RrpH2xtTu2lGlrqBj+zJgzeds8vG3O0r1Xrnmto5PUcnCUkmrd+t/LyJ+sRtdI9Jo
7dayPFdzdWmkPLZM8Z86JZZo03tDEzgO6rzkhc9j644rAi125XwtrF0l9dXRg1FrSC5EKrII9yAF
srgAZOXK8DnFYYfLqlemqkWt7fl/mVKsouz9TthmgEjBx+HrXnkl9qGo+Br6W7ublJLXVUQXEQ+c
wLNGdxOwbhtJ+YKMgVo+LNW1C01W7S0upopY4YH062SAOt+7OQ6scdhgYBGM7q1jlU3PkUle7XXp
b/P5LVkvEK17HlXiz4D6nNrN1ceH7+xaymkaRY7l2R48nO3OCDj1qrYfs+a1If8AT9Y063Xv5YeU
/wAhX0kcbiB0zSADNd8eK8wjBRutOttTH+zqLd7fifO2rfs938Voz6Rrdtd3CjIhliMW/wBg2SPz
rxbULG506+ns76F4LqBzHJE4wysOoNfeRxXz9+074djjn03xFboA03+iXJA6sBlGP4ZH4Cvc4f4j
rYrELDYpp82z217HHjcDCnD2lPoeC4pKU0lfcHkjqKKKAPvrtWf/AGzZDVG00SSNdKVVwkTMiMwL
KrMOASBkZrQHQVhXnh5LrxDb6s926PA6OqJEofgEbPMHzbDnJU5/CvxDCxoScvbu2jt69D62fNpy
ls69YLqZ0/z3FwZRATsby/NK7hHv6b8c4qzc6hb2k8EE8wje4Dsgbo2xdzc+y8/QGsVPCdoniF9V
R1Be5+1tGYELeZtxxIeQvAOPXvV/xJosOvaYLOeWWECRZBLCQGGMhgPZlLKfY10ThhFUgoyfLbV9
n/wCE6lndaiXPiLTrW0tZnmmaO6iNxEsULuxiABMhUDIUAjJPrTr/XtPsEtnkmkkFxGZo/s8bSlo
gATJhR9wAjn3qPVtGN5cQ3FleyafcR272m6ONXBhbGVw3QjaCD296hm8PhEsP7Lvp9PktLQ2KSIi
yEwnbxz0YFQQ3Y9quEcE1Fyk763/ABt09Nr9dhP2utkGveJI9JurNAI5I5F865k3N+4gJAEhwDxk
98Dg1p6nf2umWE99qE6w2sC73lPOB26cknjGOtYuu+ErXV7+O7ebZKLdbWRpIUmLoGyCC33W5Pzc
9elaXiDR7fXNGuNNuHkijlC7XiPzRspDKwzxkECpksI1RSb3970uNe09529CGPxPpcujXGrPdPDZ
2rFZmuInjeNhj5SjDdnkYGOc02DxTpU+kXuqC6kS1sci682J0kgwAcMhG4cEHpUN34bbUvD95pus
ate30lzKJjdsFRonUhk2KBtUAqDjvzUD+EI7nRtes77Urq6u9b/4+71kVWOFCrtQfKAAK15MBZ3m
78yt/h08l59ntpqyL1tNOn4j7PxzoF3fwWcN5N9pkmECo9tKgWRhlAxIAXcOVz1q5ceJdKg1oaTN
dFb1nRCNjFFkcZRGfG0OwBIBOTVGfwhbS3styby4DSaha6gRtBAaCPYq/Qjk96iufBFhP4sfXjOy
ySTR3EsLRIwaRF2qQ55UdMgenatHDLG9JSS5X/4Fpbp6/cJOvbZb/gbEXiGwm12bRI5pX1CBQ0sY
iYrGCu4bnxtGR05qLXfEml6HJCmqTzReYAd4gd0QE7QXYDCjJxzU2n6THZaxrGoJNI0mptE8iEDa
nlptGP581ieMfBMHii68261K5gTyBD5SxrIqkPuDru+63YkdRxWNGOBliIxqSahyq763tr07/kXJ
1VBtLW/4GtqniXTNM1SHT7y4l+2yqriOKJ5NiFtoZioO0E8ZNM8a6+PDHhu+1d4HuTAABEufmYkA
AkA4GT1qj4r8HQeJL61ubi+mtzCqqPKiTeMNuykn3kJ6HBIx2rV8TaRH4g0K80u4lkgiuVVWkjAL
DDBuM/Sklgoug7t6++te6/S+wv3rUlt2Kd14qsdLtLGTWp/s11cweeyRRyOI0GNzt8u5UBIBLAYp
PEniDRdGutPm1hplk3bradLeSVAzjbjcoIyw7HqKr+LvBln4l1C3vZ7hoJ4oWtmPlJKHjYhiMNwD
kcH3p+u+FpdU1TS7y31m6sRpqYt4EgjljVsY8zDcbscA9u2K3pLL24Sc2r83Nvp2Ssn6dfMiXttU
l2sXtU8TaVpN/HZX92Yp5ArMPLZljDNtUyMBhAW4Ge9F/wCJNNsdYj0m5uJftrhWMccLuEDHClyB
hQSD1rK1/wAEWOs68mqzTvHI0ccU6GFJBKI23LgsPkPYkdqk8T+DoPEGsW2oT3s9u0GzAijTeNrb
vkk+8ueh65FTTp5d7nPN6xfN69Og262tkt9PQ3dX1O10jT5LvUpvKtY8AkgsSScAADkkkgACqf8A
wk2l/wBhvrD3Tx2Mb+WxkidXEmduzYRu354xipPEmkRa7prWk00tuwlS4imiALRSI25WAPBwexql
feG21DQjYajq17c3QuVvEvmCiSOVW3KVXG0KDwF6YrnoRwjpxdWT5ubX/D936/JmknUu+VaW/EmT
xVpP9gXWs/a2j0+1YpcF42V4XBAKuhG4HkcY71BN4w01PD2sataG4ni0tW8+DynjkDAZA2sMjIIO
emOarzeDobnw7rGmXWoXM0+rTfaLy8KKHd8qeFHygAKBirlz4bt7mPxMktxNt14YnxjMX7ry/l9e
Bnmujly+LfvN2lp/hvG/TzlrpttqRes1t0/Ebc+LdNsdDsdTvmuobe7h84KtvIzIu0FiwA+UDPJO
Kk1jxTpGiraPe3TqLuFriDyoXkLxqAWb5QeACD9KzNe8Eprml6bZXur3RW0t2tnPkoVmDKF3FD8o
cAcMOlXLzwpBdDTvMu5w1lp0+mqVUfOssaoWPuAucdKahly5W5PeV0u2vLbT0Fevrp2/4JY0zxTp
mrw38ulXRmaziEz743jBQqWVgSMlCAeR6VD/AMJXp8OiaPqOpSlDqcYaFLeN5vMbbuKqANx46ZFG
neFrewa7KXU0n2jTodNOQPlSJGUMPchunSi18L29tB4ZiS6mI0EEQkgZl/dGP5vTg54qZRy/naTf
L+Pwvy/msth/vrXtr/wf8izL4l00aFa6stxNPYXIBhaCF5WfOeigZ7HOemKbJ4o0mPSLHVftbyWV
66rbNFE7vMxzwqAbieDxjtWXJ4JgPhfSdDj1C5SDT5PMDlFcTcsdsiH5WHzcD1ANSQeDo7XQND06
z1G5t5tGl860vBGhcH5shlPykEMR+VP2eX2Xvu/M/wDwHWz29Pveguatrp0/EjsfEOna94NbU9Ut
pFsZLh4VihWSR2KSlUKhRu3HaDxjFWbLX/D+m+GLbUrO4KaXPMY4mVHeSWZmIK4PzFywOc88VXHg
uJfCkWhxapdhI7s3hnZFYykuXKyL0ZSSciiLwVbReD08PR3jm2SdpxJLbxuGy5bayEbSuSemDW0n
l7XKptR59tbcvfbf8SV7Za2V7fidLp97FqNpDd2ryNFKu5GdGRvxDYIP1rK0zxNbalrkWn2Akkik
tZLkTsjIrBXVMpkYZTk/MPT3qz4b0ePQtDttMinmuY4Aw8yc/M2SSR7DnAHYVT0Xw7/Zd3bSnUJ7
mC1tXsra3kjVRHEzBsFhyxG0DPpXFFYROrdt78v46+u29jV+0fLp6lzS9c07U7gwWczO+wyoWjZR
KgOCyE/eUHjIqtaeJLZ9C0zUbxJInv13R28KNK5IBJAAGTgDJNQeGfClpoFz5ltIHRIjBEvkIjBS
c/M45c9BnjgetR3Xg+0uNK0izE2X0xWWGWaBZQwYYbch4Pb6EVs4Zf7TlUny3Wvylf8AHl/QV6tr
21/4Y6G0uYb20hurSVZbeZA8ci9GU9DXD/HWw+3/AAw1bAy9sY7leOm1gD+hNdrpllHp+n21nCd0
cEYRSQATjvgAAfhVLxfYjUvCmtWRGfPs5UH12kj9RXNgqsaGNhUg9FJfdf8AyKrRc6TT3sfDRpKU
0lftJ8qOooooA+2f+E28LY/5GPSf/AlaP+E28K/9DHpH/gStfE34U4xt8vyt833eOv0r4/8A1Lwn
/PyX4f5Hp/2pU7I+1/8AhNvCv/Qx6T/4ErR/wm3hX/oY9J/8CVr4pjhkkl8tI3aT+6qkn8qYVwcH
rR/qZhP+fkvw/wAg/tWp2R9s/wDCb+Ff+hj0n/wJWgeNvCv/AEMekf8AgStfFMkLxPslRkfrtYEH
8q09Y8O6no9pY3WoW3lQ3kfmRMHVuODhgDlTgg4ODzR/qZhP+fkvw/yD+1KnZH2H/wAJt4V/6GPS
f/AlaP8AhNvCv/Qx6T/4ErXxOEJUtg7RwTjirNjp9xfX8NlbR5uZmCIjME5PqTgD6mj/AFMwn/Py
X4f5B/alTsj7P/4Tbwr/ANDHpP8A4ErR/wAJt4V/6GPSP/Ala+M9Y0q70a/ey1KIRXSAFkDq+MjI
5UkdDVV4nRUZ43VXGVLKQGHt60f6mYT/AJ+S/D/IP7Uqdkfa3/CbeFv+hj0n/wACVo/4Tbwr/wBD
HpH/AIErXxPHG0jhI1ZnPAVRkmkZSrFWBBBwQR0NH+pmE/5+S/D/ACD+1KnZH2z/AMJv4W/6GPSf
/AlaP+E28K/9DHpH/gStfFMsTwsFljdGIyAykHHrzR5Em/b5b7sZxtOcetH+pmE/5+S/D/IP7Uqf
yo+1v+E28K/9DJpH/gStH/CbeFf+hj0n/wACVr4qit5ZQTFFI4HXapNMKENtKkMDjBHNH+pmE/5+
S/D/ACD+1KnZH2x/wm3hX/oY9J/8CVpf+E38K/8AQx6T/wCBK18UyW8sQBlikQE4BZSM0r200ab5
IZFT1ZCBR/qZhP8An5L8P8g/tSp2R9q/8Jt4V/6GPSf/AAJWk/4Tbwr/ANDHpP8A4ErXxWbaYJvM
MgTGdxQ4x9aFtpmTesMhTruCEj86P9TMJ/z8l+H+Qf2pU7I+1P8AhNvCv/Qx6T/4ErR/wm/hb/oY
9J/8CVr4pSF3V2RHZUGWKqSFHv6UzFH+pmE/5+S/D/IP7UqdkfbP/CbeFf8AoY9J/wDAlaD438K/
9DJpP/gStfFEUTyuEiRnc9FUZJojid32IjM3ooyaP9TMJ/z8l+H+Qf2pU7I+1/8AhNvCv/Qx6T/4
ErS/8Jv4V/6GTSf/AAJWvilreVHCPE6ueilSCaSSGSJgJI3QnoGUjNH+pmE/5+S/D/IP7Uqdkfa/
/Cb+Ff8AoY9J/wDAlaQ+N/C3/Qx6T/4ErXxW9tNGpaSGRVHUspApvkyeT5vlv5Wdu/adufTNH+pm
E/5+S/D/ACD+1KnZH2t/wm/hXH/Ix6T/AOBK1JD4x8MTSLHH4h0lnPAH2lea+JEjZ1YojMFGWIGc
D3ptH+peE6VJfh/kNZpU7I++UZWRXRlZGGVZTkEeoPelr5R+DXxBvPDOuWunXs7y6FdSCKSJ2yIC
TgSJ6YPUdCK+ryMHB7V8dnGUVMrqqEneL2Z6eGxKxEbrRiClpKK8c6RaSiigArnPiD4jtvC3hK/1
G7ZQxjaKCMnmSVgQqj+Z9hW/czxW1vLcXMqQwRKXkkc4VFAySa+RPi545l8a+IS8BdNJtcx2kR4y
O7kf3m/QYFfQcP5TLMMQnL4I6v8Ay+f5HHjcSqMLLdnCMc5z1ptONNr9ZZ82OooooASvcvhZqel3
ngyy1HWZrVbrwPcTX0MUrANdRSITHGo/ixOoOPRvevDTXS6N4J1vV9Ki1G0htls5XaOOSe7ih3Mu
MgB2BOMiplOMNZOw0m9jvfhte6pfeC/E7eFbuKLxzc6hFNJJ5qRTyWpDFxEzkfxkFgDnGO1bMt3o
o+PGlSX0+ltqC6Ykd1cfIbX+1vs7AMSPkP7zZk9N3NeMW+galcaPf6pDbNJYWMiRXMqsCI2bO3Pf
Bx16VoWngvW7rX7jRI7aJdTgVWeGS4jT7wBABJAJO4cDmpdWCveS0/r9UNRb6HY+NT4ojufCa+Od
SsLm/F2zJGZI5bqKPzF5ldc/ITnaCeAD0Fdb+0VJfTRaq8I1c6YdQ3B5NUt5rRl5CmOFPnXnGM5w
K8Y1Pw5e6RrcGmat5cE8jKG8p1n2gnH8BPP+z1p/jLw7P4Y1+TSbhpHuI1Vm3RbDlhkADJzwRTVS
DaSe+q9Bcr3PRPhPfaND8NfEmn+IhB9g1TUbWzklYjzLbckhWdB1OxwpPtkVtappelXX7Q9/datf
2A0TRbaG8ubjIaKTyoIwoAH3svt+UZOM15Tq3gbxDpGlvqF/p5jt4wplAkRnh3fd8xASyZ/2gK5r
FOE4zV4u4OLjue0+PY/Dt38QfB3iue/sNQ0TVZYRqzW0Zij86J1WY+WcMqsuG5HOTWz46m1dfCvj
n/hOb+wutOnmjPh5I54pP3nmghrcIcpGIsg9B0715Bo3gnxBrOmf2hp2nmW3bcI8yKrzFRlvLUkF
8d9oNVvDvhjVvEDXH9mWytHbgGaWWRYo48nABZyACew61Lq01f3lpuPll2O0+DMkw0/xZFoM0MHi
6S0jGlyPIkb7fMBmWJm4DlPcHGcVsaVMYfjlpLeOtQ0W6v1tlD3CbGgS68lvK89gNrMr7NzcjPU1
5tB4R1ybxI2gJp8v9rru/wBGYgE4XdwScHjkY69qrf2BqPkafO8Ajiv5ngt2kdVDOhAYHJ+XBI5O
KftYPS6/r/hmLlfY9R+I8msJ8MvJ+IV3BdeJm1UPp2Z45p1t9jeaSUJxGW2bQe4OOK9ktNV0MeI7
HWGn0/7fDDF4cCeYnzI8Sz+ceey7kz68V8teIfBWt+HrOK51WC3iilIEZS6ikLZzggKxJHB56VEP
B+uNrGo6Ulgz6hp8LT3EKspKIoBJHPPBHApKtTa5lJW9R8kk7WPXPgvPOnw01iPTzqLXh1qNimm6
hDZz7PJOSWk4KZxwO+K8vhE8fxRt/wC0TIs41ZDKbiVZGH70Z3uPlY+pHFZkPhrVZrnR7eO1zLqy
hrJd6/vQWKjvxyCOcVBNot/Dpk+oSQYtIbr7G8m4cS4J2469AeelP2ke6FZnpnxx8VQav4zuNOsr
/WJ4LXVJS0d3cxy2y4bCmEKBhcZ6k8Yrrf2iJb64tNXMH9rvpf2mJlf+1beSyZcADZCvzjnpzxzX
jereBtc0nTmvdQgtYYljSUqbuIybWAKnYG3cgg9Ky9A0LUNfvWtdKt/OkVDI5LBEjQdWZmICj3Jo
VSDjzJqwcrvax7h4qTxZofwgTSIrw6sLu1SfUrpryJ47O3UfLbQruznHLsB6AVekmv3+EnhuPRTq
7bdEkWU2Gq28EKvvkyJYm+ZjtxnHUECvB9Q8MaxYa5Do9xYS/wBozbfJijw/mhvulCuQwPYjipvE
fhHWfDsEU+qWqpbyOYxLFMkqBx1QshIDD0PNJVYNpcy12Hyvse0fAme4fwda2ccsdranUJGmvrO8
hSS2yqg/bIJRtmhxkjn1HXFeIXeiXT2uq6naeXc6ZZXQt5LmMhVJctsIXOcEKT04rUj+HvieTVbT
Tk0xjeXdr9thTzEw0P8AeznA+nWsXTINS1CdNG05ZppLqZQLaM8SSDIGR7ZP05ojVpz1jJP5g4tb
o9G+E0l8fBXiSDwhcQ2/jF7m2MbeakUzWg3eYImcgD59hbBzit/wBPcx/HLW31a/0+61H+zLlZJ9
LkjhSSfyQMRuQEEm7jd03ZPNeS634V1bRZ7OK/tkH2w4t5IpUljkIOCA6kjIPBGeKn8ReDNZ8O27
TarFaxBJBEyJdxSOrc8FFYkdPShVYO1pLUOV9j1KKS+T45+CZdbOoxQiVNp1bUIbpgAx3HemFC+x
qH4s65FrXw80670m9utRjg1eU3E+pTxveWUoBCxKFA/csPmDc8jHGK8sfwprCXc9s1niaCyGoSLv
XiAqG39fRgcdaoaNpV7rWoxWGl273N3KfljT2GSSegAHJJ4FNTi1zJ6C5Xsel/EfxfrOpfDHwXBc
6zNcm9hujfIZQxkKz/J5gHOQAMZ7V6HBczf2hbXEd7pw+Ew0PZJbmaLZn7OQUMed5n87nOM++K+f
fEXhnVfDzW/9qW6pHcKWhmjlWWOQA4O11JBweozUepeHtU0zTdMv760eG01JC9rIxGJADgn2/GhV
IO1mtdvMHFrod58IPE91otlqsjSE6XpkTag9jGET7fIdsaxzMeWiG7JXnjOBzmvL5n8yV32qm5id
qjAGew9q6fVvAmvaTpB1O9gtVssZEi3kL7+QPlAYk4yM46U228C+IrnRV1SHTy1s0TTovmIJXiXq
6x53levIHap9vTtzcyt6j5JbWObjJEiEHnINfelsSbaEnkmNCT/wEV8FL99fqK+9LT/j1g/65J/6
CK+L42+Cj/29+h6uVby+RLRRRX5+eyFA5IA6mgZJAAyT2rwf43/FRYkuPDnhi4BkIMd7exHoO8SH
+bfgO9ejlmW1cxrKlSXq+iRhXrxoQ5pGP8d/iQuryv4c0KbOnQv/AKXOh4uHH8IP9wH8z9K8UJ5p
cikNfruBwVLA0VQorRfi+7Pm6tWVWTlIM0lFFdZkOooooAQ16l4X8RaKngPTdLvNS0+0u7e4uHkW
90k3g2vtwVP8PQ/pXlprv/DnhHQ7zQNEutW1O/tbrV7uSzg8q3WSKNlKgF8sDglh0rlxig4pzbVn
016PyfQ1pOV3ykngrxbYeHfD2pWUxNyt3fxie28shbi02Osgz2PzKR6ED0qLW/EGk3Pxgj121mkb
R0vreUSNGQ3loEBJXrn5ay18K+Vpfiua7nZbrQ5o4fLQArIzSFG56jGMitm18B2svj3TdAa9uWhu
rCO9aSOJTJloPN2KM4PPArmccNCU6zb1Tv6Wi2/usWvaNKNv61KXhzWNHtPiPc67qbO9jBcT3tvG
qHM8m4tEp/u5JByemKu+K/Fek6uvhzVbSGePVdNl8ue3uJDKZolcSIxkwM8llxjpiqPj7wna+G7T
TLi3mvo5LvfvsdQiWK4h24wxVSRtbPB46U7xj4I/4R/w7puopdme4fbHqEG3H2SV0EiJnvlD+YIq
orD1JQqJvXRfK6/p97eQe+k4/M3NX8Q+G7eTxdq2maleX174hgeFLKW3KfZvMcO5kcnDbcYG39K8
/wBRsILWw02eK8SeW6iaSWELgwEOVAPrkDP413lp8MkuLHw9epfyNa6jZvPc7YwWtpBG7opGfusE
IB9jWN4M0Dw9rOi6pdane6rBcabCbqdLeGNlaPeqgKSwO7Ld+KKFSjSi3CTdnrp/26lt5f1cUoyk
7NW/q5fg1Tw3q+heH/7a1O/0+40W3kt2trWElrgFmdGjfohJbB3elUfDep6Pd+DtQ8N6xfS6Z5l8
l/DdiEzKxClCjqvPQ5B9c1c8EeCbHxHpGqaju1eZLW7SCKCyhjaRlYMdzbmAGMDp61x+qWUVtrtx
ZRtNDDHOYs3SgOgzjLhSRkd8ZqqcaU3OlCTunf01vpp3fW4NySUmt/xO9TxppkfxEttTtp7qOw0/
SzYW906fvXZYGRJCB0yxH0GKzviJ4p0zxJ4f0D7FG0Ooo082oQhMIJnK5dO2GK7sdiTUnxB8DWXh
nSo7qzur+4BlEazSQKba6UrnzIpUJAH+y2Dz9ail8EW0er3VmL6bbDoA1gOYxkuYVk2demWxmsYL
C3hXTem3yutf/Aim6msH/X9WMrxlqtlqa+HfsTs5s9LhtZsoV2yKWJA9RyOa6x/HNhafEPxbr+mX
UqfarMpYS+UcmX93gEdh8rA5rA8DeCf+Em0nUruS7NtLH+5sI9mftVxsaQx+3yqefUiue8OaRPr2
v2Gk2pVJ7yZYVL9FJPU/StnTw84ypyekd/R6/p+aJ5pqz7/8Md3r/jTQ28XeDdX0e3ljtNNRJLm1
C48p/NZ3RCeo+Y4/Cs7xhqmhReF59K0PUZdSe71VtReRrdoREmwqqHd1bk5xxxVbxJ4a0e10GbUt
DutXnSC4+ztJdWJSGfkgvHIpIGCMbW55rof+FZWH/COw3zXepwNJpY1A3k1ugslbaW8ovuzuOMDj
qRWH+zUlCTk9HZX66310v1K/eSvoHj/xFoeuaZM1jqmnmQ2tuiwvpBFyWREUjz8eoPPpxXL+B9W0
61sdf0jV7iSzttWtkiF2kZk8l0cONyjkqcYOPap/AHgseKrXUJZrz7H5YEFn8uRcXTBmSL2yFPP0
qnovhZtY8N3t3ZSSNqtpew28loU48uUlVcHrkPhSPcVtGNGEJUOZ6NfLt0t+fmS3OTU7Gjo2uaJ4
Y8f6VfadcX+o6ZaRCGaaUbHYsjK7RKfuqN2VB54o1nUdD0rwTeaDompzatJf3yXTzNbtCkKRqwUY
bkud3JHHFMuvCFgureL7W01CaaHQrYypLsH751dUYHngZLYPsK0NG8C6Nf2HhyGXVb2DWNdike2H
kK0CursoVju3DJXqBxmplOinGbk+nzsuZX06avSw0p6xS/rY7S0+J3h2G4tJGnnM0MlvbibyW+W1
8pDMAP8ArpGB7gmvIPCmoQad4ssb65ubu1gin3m4tAPNj64ZQeDj0PUZFdJ4H8DQa9o+p3t3/akk
1ndJa/Z9PijdjuDEsd7AYBXH41R8O+HNN1TxlcaHMushjKYrZYoozICDyZcttUAAkkE4xUUYYWh7
SMG9Fr5L+ncc5VJ8rfyNLxtrug3lxoUllJb3N/BcGW9vLOyNpFIm5Sv7rpvGCSQBnPep/inrmja7
9sudL1TTpzLdmZIYtINvPtOfvy4+bHf1rIHhnRrrxTrmn6Zq01xp2n2c9xFd+WB5zRJnGM/dJyM+
nNcXmtqOHptxlGTvFdez110/K1iJzlqmt/0PVrvxT4fe1vdXjv5zqd1oS6T/AGcbc/JIEVC5k+7t
wufXmuR+H+sWWj6reLqjTR2V/ZTWEs8C7nhEgxvA74IGR3Ga5YmjJrWOEhGDp62f4drehLqttM7z
xRc+FZrDw/punTRtLDIRfX9vbSRIYztGdjMSWwCSQBmtvxn4z8OeI9C1jTILe6sxBJFLpkkjmRX8
tRFsC4HlhowD1PIryjNGTSWDh7rbbcfPzv8A10sP2r1t1Oo1vVbK78D+GtNgdmvbGS6adShAUO6l
cHvwDXZ2Xirw2dd0jxZPf3ceo6fYJbnSltyfMljiMa7ZM7RGeCc89a8koqqmEhUVm31+57r5/eJV
Wnf+tB+7fNuwBls4H1r7ztP+PWD/AK5J/wCgivgtPvr9RX3ra/8AHrB/1yT/ANBFfH8bL3KPz/Q9
PKt5fIkzSMwVGZ2VUUFmZjgKB1JPYVneIdc03w7pcmoa1dx2tqnALcs5/uqOrH2FfMXxP+K2oeLm
ksbAPYaJn/Uhvnn95CP/AEEcfWvmspyPEZlK8dIdX/l3Z34nFwoLXV9jrPi98X/tKXGh+EJyLcgx
3GoIcGQd1j9F9W79uK8IPSkPWiv1LA4CjgKSo0VZfi/Nnz1atKtLmkJRRRXYZBRRRQA6iiigBK7P
QfHUmkaNp1idH068l06d7m0uLkOTFIxBztDBTgqCMjtXr3/DPmjf9BzUf+/SUf8ADPmjf9BzUf8A
v0lfNVOJcrqK05P7md8cDiI6pfkeJ6H4tuNPn1Y39pb6pb6rzeQXO4CRg+8MCpBBDc8VY/4Tm+Pi
9vEBtrUTCBraO3UERxx+UYlUc54U+vWvZP8AhnzRf+g5qP8A36Sj/hnzRf8AoOaj/wB+kqXxFlLb
fNvp8LH9SxK6fieJXHiqa9s9Eh1Kztrx9Kf93PJnfLCCCIZDnlQc47gEitHV/iPrmtWWsWervHd2
moEOsTjAtmDblMeOmB8vOeK9c/4Z80b/AKDmo/8AfpKB+z5ov/Qc1L/v0lJ8QZQ2m3tt7r01vppp
qH1LE/0zybSfiRqulyxG2ht/KXSxpTxMCVkQbtrnn74LHBFc/omuzaTY6vbQRRuupWv2WQvnKLvV
srjvlRXvP/DPmi/9BzUf+/SUf8M+aL/0HNS/79JVLiPKYttS3tf3X026B9SxL6fieLeHPFa6Tol5
pN1pFnqVnczpcFbh5FKuoIGCjDsTWJd3qSaq95aWsVovmCSOBMukeDkAbiSR9c19C/8ADPmi/wDQ
b1L/AL9JSf8ADPmi/wDQb1L/AL9JTjxLlcW5Kb18mJ4HEPS35Hj2v+OJdV0W50220nT9NhvJ1urw
2oYCaRQcEKSVQck4UDrUsnxAun0d7Y6ZYDUHsRpj6jhvNa3AA24ztzgAbsZxXrn/AAz5o3/Qc1H/
AL9JSf8ADPmi/wDQc1H/AL9JWf8ArBlFrc34Mf1PE9vyPING+Iet6Hpml2OiyJZQ2UrTN5Y5uXZg
cyZ9gF4xxWK+uTx+J21zT0SxuRc/aokh+7E+7dgZ7Z7Gvef+GfNF/wCg5qP/AH6Sj/hnzRf+g5qP
/fpKqPEWUxbknq9/devroDwWJejX4nkWu+PJ9S0K80q10rT9OgvpVnuzbbz5jqcjaGYhBkk4UCkj
8fX4kVZrW1nsm01NLmtJNxjlRAdrnnhweQR0Ir17/hnzRf8AoOaj/wB+ko/4Z80X/oOaj/36SkuI
MoSspfg/66IHg8S9bHjmjePda0PRrLTtElWxjt53uXkjGWnc4wXz2AXAx6mptG8f32jeLdT17TrO
0ikvw4ktsExKWO7KjOchhuHoa9d/4Z80X/oOaj/36Sj/AIZ80X/oOaj/AN+kpPP8nfNd/Fv7r19d
AWDxSt5eZ4TpHiC40231mJUSY6pbG2meTOQC4YsPfK1vaX8Q7jTtM0qGHSdOe+0uJ4rO+kDtJEHY
sSF3bcgscEjivWf+GfNF/wCg5qP/AH6Sj/hnzRf+g5qP/fpKqfEWUz+KX4P0/IFgsTHZHi/h7xYu
l6Ne6Xe6TaapaXVwlywuHkUh1BAIKMP7xqfw/wCNI9DuNaa20KwaDU08loS8g8qPOSiMG3AHvzzX
sP8Awz5ov/Qc1H/v0lH/AAz5ov8A0HNR/wC/SUPiLKZXvJ676P8AroCwWJVtNvQ8MOvwx6peXdlp
Nraw3Fs9t9mjkk2JuXaWBLZz3wTisKvpD/hnzRf+g5qP/fpKP+GfNF/6Dmo/9+krRcT5Ytpv7mS8
vxD6HzcaMV9I/wDDPmi/9BzUf+/SUf8ADPejf9BzUv8Av0lP/WnLf539z/yF/Z9fsfN2KMV9I/8A
DPmi/wDQc1L/AL9JR/wz5o3/AEHNS/79JR/rTlv87+5/5B/Z9ft+J83YoxX0j/wz5ov/AEHNR/79
JT4f2fdCWQGXWdSkQdVVEXP40f605b/O/uf+Qf2fX7fieGeAvDl14o8U2OmWqEq8gaZ8cRxg5Zj+
H64r6m+JHj/S/A1gBIBc6lIn+jWStgkdAzn+Ff1Pas7W5PDvwf8ABk9xpFjGtzMfKhV23SXEuOrt
12r1IHH518r6zql5rOpXGoalcPcXdwxeSRjyT/Qe1ckaMeIq0a9RNUIbLrJ9fkbOTwUXBP33v5F/
xd4p1bxZqjX+s3JlfpHGvEcS/wB1F7CsLNLmm19XCnGlFQgrJHmuTk7sWkooqhBRRRQAUUUUAOoo
ooA++qxPFniC28O6S93cFTIflijJxvfsM1tjpXgf7TGoN9q0mx3HytpdlB5r8aybBRxuMhRnt1+R
9RiavsqbkjB1f40eJnuybdY7VUbmIx5/U16F8PPi7aa7OlhrSLaXrYCSA/LJ/ga8UsI11K2WKdjH
d42xSynIk9Ff0Po34GsXUbVrK8KMHt54zz/st/Sv0XE5FgcRT9koKL6NHkQxNWD5r3PtwEdjkHpi
lrx34M/EldUt49H1uULeINkUrHhx6H3r2IV+aZhgKuBrOlVX/BPapVY1Y8yCiiiuE1CiiigAoooo
AKKKKACiiigAooooAKrajfW2m2b3V7MsMCDJZjVHxTr1p4d0ia/vnAVB8q55Y+lfKXj74gap4tvW
DytHZg4SJTgYr3smyOrmUubaC3f+RyYrFxoK3U7rx58a72S7e38N4hhU480jJatv4O/E/U9d1ZNK
13ZKZARHOF2nd6GvBrawlBDSwMy9c9jXReEJX03xfpl5DFKsccilsqAFyfavucTkmDjhJUacFdLR
9b+p5cMRW9opyeh9i4oNCOHUOvKsARS1+UvR2PfAUUUUgCiiigAooooA+YP2ldRmuPHsVk7HyLO0
j8te2X+Zj/IfhXkZr2n9p7Smg8UabqiqfLu7bymbtvjP+BFeLGv2TI5Qll9Fw2t+PX8T5jFpqtK/
cSiiivVOYKKKKACiiigAooooAdRRRQB98/w180/tHOT41tAxIRYRyK+lu1fNX7RiFvG9nkkKYhz6
V+V8J/8AIwXoz6LMP4PzOSt7Fnt4zI77WGQpODj1qxNbjUohaXLBbyMYt7lzw4/55uf0Dduh4pum
BvKZFBKdN03zbqdcae8mdsaBzyCHOM/zFfpK3PJexzOWsL/y5/Psb6B8ZYZCn3HUfUV9NfCPxwPE
OnrYajIv9pQKBnOfNXsR614TMsOsQxWWqMsF9GNlvevyuO0cp7r6N1X6Vl2FzqHhvWRNGBbXlq2G
jBxn/PWuHN8rhmVDkeklsx4eu6Mr9D7Rorkfh140tPF2lK8bqt6ijzYu/wBa64V+S4jD1MNUdKqr
NH0MJxnHmiFFFFYlBRRRQAUUUUAFFFFABUF9dw2NpLc3UgjgiUszHtU9eA/HfxhPeXo8OaQ5Kr80
7KcD3yewFellWXTzDEKjHbq+yMMRWVCHMzhPi146m8V6y8cLFbCElUQHg+9cXbWTvtkm2wxH+KQ4
z9B1NSo8NqwS1QXM/eZh8o/3R/U1pWti1wwe6jnXf/GTuFfrtChTwlJUaSskfO3lVnzyLGnQQP8A
uoriSTkfJt2Kx+tWvEUL24t57bKEHa+08Eirunaelq7i8UzW+AWZc5Uf3hTfEkDtcQl5Q6zMoRl/
iHTJ9/WspSSlc7YxvE+pvDMrTeHdMkkOXa2Qk++K06p6LCLfSLGEDAjgRf0FXK/GsQ06smu7Pahp
FBRRRWRQUUUUAFFFFAHE/GHws3izwTdW9um+/tT9qtQByzKPmUfVcj64r47dSCQQQRwQe1ffQyCC
Dgivnb46fDOa2vJ/Enh62MlnMS95bxDJhc9XA/unv6H2r7nhPNo074Ks7J6x9eq+e6PJzHDOX72P
zPDcUlOPem1+gHihRRRQAUUUUAFFFFADqKKKAPvntXgX7Rdg6axp9/gCIptLntXv3pXCfGHRhq3h
CdwoMtt+8XK54r8eyLErDY6Ens9PvPp8XDnpNHg2i3tvImEiKA8by+Sa3LaNFwIlAUnOSetc5pNl
p8a7r/UFEvZQCuPatSdrJU/0WRiCOoVmH86/V7HhX0NqVBMfLljiuARgjKMfp0rG1ezGoxx28i+X
eINls0o+Uj/nk7dh/dY9DweKx5LwpIWgeMnoSpKnFULy/beVM8qjuSxPyn+YrSN0ZuxX8OeIr7wp
r4uLVXt5oX2yRnjoeQRX1r4I8UWXi3RI9QsG+YfLNF3Rv8K+Tb9R4gtZZVwdXtE3OQf+PqEfxe7q
OvqOeoNVvCHi3VvCl+t1pVyyD+OM8q49CK8bOsjp5lDmjpNbP9Gb4XFyoOz2Ptulry7w98ZdBvrc
DU1ls7tIhLKAhZMYySD/AErr9D8YaLrVwYLC8VpQivtfjIYZGPwNfnGJyjGYa/tKbsuvQ9yniqVT
4WdDRRmjNeYbhRRzUFzd29qhe5niiUdSzAVShKTskK6RYpM1g3ni7QbSza5l1W1MSnHyvuOT2/Sv
OvHXxZht573TtIQk26t50x7YxwPqSB+delg8nxeLmowg15vYwqYmnTV2zpviV45t9BsHs9PkWbVp
v3aRqwyhI6n0r5b1nUWuJpYoZTIZW3Tz95m9v9kdh+NSale3CQyTXcjSalfjfI5PMcR5A9i38set
VNIhR5PnDN9MYFfpuU5TTyuk4x1k92eFiMRLES12L2jaFqNzte1hDAkYYV6f4X0fUrUqLq28yNhy
dgIP1xWNoNqqmMF2AYfIqzNk/UCvQ9CnthJEiaq8cndNwYZ9MnpXoOVxRhYS88P2S6dMYYmiM8ZX
ys/dyPmKe4IGR+NeS2kLy69pVgx86U3CqADkL83f39q9z8Y6zb6doBM8bNOxPl7xtIce/wBD+NeW
fCm1fWviTazuoAiJuH46YrixlVUaU6r6Js7KabSj3PptF2oqj+EAflS0UV+ON3dz2loFFFFIAooo
oAKKKKAFrmviF4qh8G+F7rVZNrXGPKtYj/y0lI4H0HU+wrpeuAOp45r5K+OHjL/hKfFjwWkhbStP
LQ24HR2z88n4kcewFe9w/ln9oYpKXwR1f+Xz/I48ZiPY09N3see3Uz3NxLPMd0srmRyBjJJyahpx
NNr9bPmwooooAKKKKACiiigB1FFFAH312qG8gS5tZoJBlJEKkeuRUw6CobudbW0muJOI4kLk+wGa
/CYX5ly7n17tbU+NfFdh/ZviC8gXcAkrBeegzWe7tGVkgmkDDuvr+dX/ABZqsWoeIr66AaRZZSRu
4A59KyEudob/AEe2KjpmPNfteHUvZx597I+Ym1d2L8WtSSKReW0N5joZF2v/AN9DmoZo7bUAFsJ3
t5gf+Pe5YDPsr9D9DiqYuXOQ1rasPdAv8iKtxWkV4h/0KZXHVreQSf8AjpOf1rpSMG2UInu9J1GO
RfMt7u3YMu4YKke3+c1f1qCEi31eyjVbO6Yh4h0hlH3k+nOV9j7Vc8h1t2gvwbyyjGPNRSJ7T3Kn
nb7Hj0Ip2n2L2dy+mXrq+namg8m4TlN2T5cg9Pm+UjqMkGqEVGj2faGxwbAFT6jcBn9KZrFzPa66
/wBmkkjeNY0BRsH5UUdvpV/7O/8AY5EistzDbTW8qt1G2RSB+GSKy/EP73xHfbe8xHFDSaswTsdV
pfxN8T2FuIYdUkdE+YeZyfpXQp8afEJntVk8ryldVZgOXz1JryAgggZ5NW7NWLRCRSU3bgCODjj+
dcFTK8HUd5U19xtHEVVopM9Tn8Y61Jq15NPqEyRRzY+9gbTwP5iuS8VSariV59QuJVRgp3Mec102
o6NJdWVxHEi+bPaqy4HDZwRz6hlx/wACrPg0uXVc/acxxspk299o7/hXRDC0aduSCXyJdSUt2Y3h
mxkvrK0gkDFZtWiRs9wEYn9M03yI7m6nluXJhlme4mx18pPmI/FmC/UV6H4Q0+2eK3uIcFrSS4lK
HkEiIAfj8361yOu6TNB4elCR7J2dYG54Kr8zn6GRgP8AgNb2IOEv7qS9vJrmXG+RtxA6D0A9gOKv
2EXk26zXs7QW55RFGZJfoOw9z+tN+yrpsazXqK8zjMMJ6Ef329vQd/p1zp5pJ5Wklcu7dSaATsdJ
b6usi+THE8cJP3Qxwfdj1P8AL2rqNL177BbsVSC5UDb5ci549K83t5dhyBk98mrsd1LOwABCDkDd
WE4M6adRdT0j/hPk1OyGmDSsqxIMTNvQf7ueRXo3wK0KOzi1PVCrb5X8mPPO1RyQK8K0K4azmMyw
+ZPtIQDkk9q+pPhlZvZeCtNjmx5zqZJP94nJr5biivKnhOWP2nb9T08JBOV2dSKKKK/Nj0wooooA
KKKKACjNLTWKqrM7BUUEsx6ADqTTSvogPOPjp4vPhjwi1raSbdS1MNDFg8xx/wAb/kcD6+1fJhrs
Pip4qbxd4xvL9GP2OM+Rar6RL0P48n8a481+wZFlqy/CRg17z1fr2+R8zjK/tqjfRbCUUUV7ByhR
RRQAUUUUAFFFFADqKKKAPvke1eY/G7xnb6H4dn023kV766XYVU/dXvWZ8VPizHok0mmaIRJdgFXl
HRT7V866pqN1qk8lzeyyTSs2SzHNfneQcO1JzjisRpFapdz28Zjkk6cNxfNjk3SvgEcYFQSybMiN
iVaq+TjFJn1r9CUbHjOQE560oOCCOo70lA4qiTb03xFd2skf2km6RPul2xJH/uP1H0OQe4rsbdbK
90ZpICDCWMmAu3yZMckL0XPRlHBGGXpgea5GeBxVmwv7iykJhchWG1lzwRQB1Wp3qLcXLysFeSNv
M7ZZk6/iyD8TXOXCyXEjzsAZbmT5QD0JwT/MVSlneSNVYk7c8+3XFaFncEyK2AZGJCH+5kY/qT+V
AEUVpi7Xn5Fy5wP4RwPzPSu70Pw3HdwaasZzcnBuFGf3a53YP4H9K53TbeO71sXQyLG3YM2O6qQF
H54r3fRNOme6hmfYIipchU2/McY/IZ/OonKyuVGNxmt2lvaTaaJt4byS0ZHQcgEH2DdveuPsNTig
0l72NAYVguQ4yMqfMyvPp98flXqPja1a68NSYUBo42ZHA5Vgc8flzXz7dXElkl1bQuPJks3iZR0/
eMrD+ec0QlzK45KzOq0i+trJbmC2lYz3BYOv8QLvGxx/wFTWXJr1rqlxcRuFaxto12bnwGkJ3HJ/
u7icn0HvXIX97sluJreR0mjijhPYhgCh/TNZUd79nhSO3HT5mLD7zev4dvzqyDqtYgtmc3VyFkkY
Eh2GWceycBR6bu3auau7tAR5NsgQ9C7bs/gMAflVHz5CWLsWLHJ3HOaUymRWDAZOMYFAEhvSTzBb
49PLFLBcqD/qUz2KkjFV2jZcblYA9CRTR8re9Jq407M9M8IWcK2Ju7iQg9m3AlePSvov4fXCXHha
02EfINpwfxr48g1OSK3Eaux9ef0r6P8A2dbxrrwdOrMWMU23nsK+R4qoOWD530aPawdVOfKj1eii
ivzU9UKKKKACiiigArzT4++J/wCwPBMlnbybb7VSbdMHlY/+Wjflhfxr0scnA5Jr5I+OfiP/AISH
x9drDJvstP8A9EgweDtPzH8Wz+lfRcMYD63jVKS92Gr/AE/H8jhx9b2VKy3eh53mg0lFfq586FFF
FABRRRQAUUUUAFFFFADqKKKAJJ5ZLiRpZWLuxySa0dFsJbx2hELOrDt1BrPtYJbiVY4VLMxwAK6H
V7efQtPtwvmw3FwDls/w+1J6aIDmpFKOyN1UkGmUpOSSetJTAWlp0cbSMqoCzsQqqOpJ9K9AtPC0
GkxL9vHm3uAXQchD/dqJ1FBXZSjc8/8AKk67Gx9Kaa6TWr20ju/JRGwhwxQ4x/jUd3pqPEro3mIw
yrKOfxqfa2s5IOW+xz1SbjlPLyCPTrmieJopSjdRSxhn2Kg+YnaD65rXck7r4Z2M+q6rZ2A4tDMs
sxx1jRst+ZIFfSen2i20EMOAqkk8fU15H8FtPKSPOB+6jXygT1Jzk/rXt9iqyyqWZQB0z61yVZXd
kdFOOlyxLaR3Wk3MMqgBVMgyOvy4b9M18k+IrRtMtlEuH2boDJ/fTnb+OMfyr7a0yBXs5t8Yd4+c
DowxXxl8QrZtO1Ga1LiUwzzAKTnehdWT8QDj8K2pqyIqHDXjOUjck4lUFv8AaIJGTVTvVrUCTcEB
tyclB6AnOP1qez08yEGQHkcAVcpKKuzNK5n06JC7bQQCeOTjNdJBBY290lvctGrtxjHTPqa9K8Lf
CzS/GBbT474adqzoXtZGXMcxHVT6Hv71Cq6pWK5TxtzcHEMzPlBgKzHAHtVaVGRsMNp9M5rq9W8P
6jo+s32ha0hg1jTjhFK7hIvse4xyDWYloZtpCKiv/ePf09q0JsYoUs2McnpX1z8EfD0vh7wRAtyp
W4u2891P8IPQflXzn4H0eKbx7pVnflfs5uF37eR64r7LACgBRhQMAelfFcY41wpwwq+1q/kerllK
7c+wtFLSV+eHtBRRRQAUUUUAYHj3XB4b8HatqucSQQERe8jfKn6nP4V8TO7O7M5LMxySe5r6L/ag
1g2+h6Ro8b4N1K1xKvqqDC/qx/KvnEmv1DhHCexwXtXvN/gtF+p4GZVOary9hKKKK+pPOCiiigAo
oooAKKKKACiiigB1FFFAHsXwz8KCTy5potsgI6079oa1jgOjFFwQrLnHUcV6d4V0v7NGhfIPpXmn
7RqEXelNkbdrACsFK8kW1ZHi1FKelJW5BveDHVPE2nOwDeW+5Qf7wBI/XFem6qFkQMi7X2YbByXf
nLH6147p9y1newXCfeicNXrcN1DqNtHcW7Aqy5X2PpXFirqSfQ1hqmjyBw7TMCCXLEEe+a9DsbMw
6PDDLjei4P1ptxolsmoG7SB/MYAsCcgP3YfWrR4jJkPyg5xUVq6qWjEqELas4zxNCkcsbKeTkdO1
Z9iGMqoM7twKgetW9culu7mR1wQPlT+pqz4L059T8QWUAjLh3GfQDvXXTTjBXM5ay0PojwDaiz8O
2QZFjmZMyBTnDH+ddtpgV5OWwp4z6Vz1tCtvboi8IigDFdHoKrJZyMi4ZWXk9B+Ncu8jqSsjuNCl
zGoZg7LxuHWvlL9oS309/Gk7Q4WbyDIZI+FBz3HueK+q9AjI3ZwpY8DtXhHx/wDBxF/LqJtzI2Pl
bO3eM5OOx69K7IbGE0fN2j2/2nUIkIyM5PvXb21kqSZbaCMDHrU3grRLS6ZvKLedsYx7hgkq2cfX
FaWoW+0k4YoeuB0/+vXJiZNSXYdNaHl+tJJHqt0sv3/MP/1q99+Gsc03hLSb2OQw3kXzxyjqCp+U
/pXl2q6MNUu4VyIpchd+3O9f8a9b0qePSdGjtoAVSKMIi/5/OqnVTgu5PI0y/wDEfxdp0t34a8U3
tlBJq1tMttert4mjBw2R6FWP415t4kht4PE+rvZReVaCcsoxuEYOCDj057ciue+IWrx3urW9pDJu
itzulYHgsTz+VQaTrccnib7ROxaGYhJFdsKewNb0m3BOQpWTsjuLCwtrr7PMkYWdSGWQc/MOeGHa
ve/DOpf2npMMxwZV+ST/AHhXk1noxs7cPEVNs53gMchPoa9D8IyLHsjRiRMMnjuO9fPcVYFYjCe2
S1hr8juy+pyVOXozraSiivyw94KKKKACiilUZYD1NAHyl+0XqRvviPPbhspYwR24Hocbj+rV5fXS
/Eq8OoePvEFyTu3XsoB9gxA/QCuar9uy+j7DC06faK/I+UrS56kpeYUUUV1mQUUUUAFFFFABRRRQ
AUUUUAOooooA+0bGMDpXjv7RsamPS5BGchmXf26dK9ptwPLz0+leWfH2x8/wxHcqzZhlDEdjniuS
D95G09j55NJSmkrrMRau6dql3p7E20pUHqvY/hVGnAHGcHFJpPRgnbY6f/hL5yp3QLuPo/FZWo61
d3w2ysET+6nFVBDlIzkfMcZ5qWWxkQ4xn0wetZqlTi7pFczZUz617f8AB7QvL01dRliA3Z8ongle
7fjXmOgeHLrVtShtIYmJYjO5DgKerE9sV9JWFmljpkFpEfkiUKMDjA6VNWatY0pQu9S4jeZkZ+Ve
uK63wiIGDGGTceA4ZT0749a5HT4Gk3bQeueD1xXY+FP3dyxk53DHPWsKe51u1rHY2VvHHkwgKp7H
t70zxnoSeJPDF1Y+UrThS8Oem8DI/Pp+NXIiJlDRkBuRx+taFurQAFTlPeutHLI+GL+2TSo5dNi+
06fqEF48ltIw27G/u59+lYh8bMbgte2p84tiYR8Kx6FgOxP5V9G/H74Y3WvzHUtEiVnkZTKFHOB6
e9eD6p8M9XhCPa2rOpIEkUxAZD3De4+uD1olCMlZkXa2K6+LdKRg8bT5U8K8eeKo6748nvUKWUfk
kjHmE84+lcvq2k3mmahJaXVu6SqeFIPI9RVAgg4IIPoazWGpp3E6kmPeQkk5JJ5JPU1JaztHKpCK
2DkDFV8Vv+EtGOraxb225d7MP3bcEj69jW5B7boDzw+E7R7wSrJJztbGMfzr1HwegbSo5iBkjC8Y
xXnt1b3CalZ2CPL9lgRVWMR8Y75NeradALexhiUYAXOK+d4pxf1fAuHWWh6GXw56t+xaopaSvyg+
gCiiigAp0X+tT/eH86bTkOHU+4oQmfCXiJi2v6mx6m6lJ/77NZ1bXjS2az8X63bt1jvZl/8AHzWL
X7tTd4JrsfJS0bCiiirJCiiigAooooAKKKKACiiigB1FFFAH22q7YxxXDfFa2hn8K3glKKQhIycZ
NdxIe1c1400/+09Cu7YJ5m+M8ZxziuG9joa0Pkk0lWby1ltLmSCZGV42KkEVXru3OcfGFP3gT9Di
rtnGsxEYAQHndJziqkKFnHAPtnFdf4Z0yO7uIljhbzpCF3MwKj65zUt2Glc634X+D0vpmuJ4iII/
+WrYIlP+yvoPWvS18F6OHB+zK2PUA5Pck9yaveH7NNP0+OBduQOSECj9K1QcgZrllJtnRGCSKNvp
traLILeJY9/3mA5b61DeSJbRADgDp/jWi+AOnWvNPiN4pi0+3urXLpdKmUyPvZ6Ee1QlzM0TUVc6
7SNcsnv/ACEuYy4JBRW9q7XR9TgjVhK4yBtJzyp6jNfFbave/aDNHO8bk5+U96218ea6LZYvtRJX
+PufrXQqTWxCrp7n3Homqxs4AdVAOGGeAfX3rr7W5Ryq5G08jnNfA3hv4la3ZyKJr92/h5HUe/vX
0n8LPHkV7p8015cKYoh1b72cDj3JP860SsK8Z7HsnEUjREExuePY0os7QztJNBEXZNhYp95fQ+oq
vb3C3dsjKSpZdwB7Vdt5fMXa2MgYKnvTTM2jzD4tfDHSdetGvorKGW5iHypnZjjjaw6fSvlXxR4V
nSVxqTmzlz+7zGZoz/s+YoyD7HNfeUpV4pI871OQVNfNPxY0qS11q4azEDW74Ettc2xcg564HUfr
TuTynznc6e1oIjLbupY/LPG+Ub8O3416f4I04abajVJZ1NwUGMruRj+gz7g1g3ttZ2t+jzaPaWYL
8eRcOwk+qt0z6Gi8mju1EEMl9GScCBCCF57c9KaJ2PXPAkV5qmptdTTM6htoXPAFerYxx6cVxfwu
sDa6Ejy5Mh4yygH9K7SvzXi/HKtiFQjtH82e7l1Llg59wooor5A9IKKKKACiiigD5K/aA0ttO+Je
oS7cR3ypdJxxyMH9Qa84r6a/aU8NtqPhm11u3TdNpr7JsDkwuev4Nj86+Z6/YcgxaxeApy6pWfqv
+AfM4yn7Os13G0UUV7ByhRRRQAUUUUAFFFFABRRRQA6iiigD7Vlbk1WlAZSDUshzUDmuBnUjw34s
eDpYr9tS0/cUlP7xS3GfWvO49Cv3YgRR/jKv+NfV11AlxAyOMhvavLfE3hnUre7eWwuW2N1B28D2
4raFRpWZlKGt0eRvpWpWhJWGQgdSgyK9G+FJIuw80PzH5SZRg/yqSx07XYBuW7lZiercbfyrv/Ct
tdHBvbiZyOquQcn29qqUroIx1OnRW25PFPMgBC9e9KxQL/8AXqu8qICykbu9c5uWXk+XGSOK4rxz
4ctdbt/30CtKn3WPUfjXRtdiTgN096ryyKU7EUrtbDsfNXiPRTpMxHzBScDNYlez/FTRvtWlNc26
ZkiIYgDqK8ZNdlKXMjmqKz0JbOB7i5jhiGXc4Ar6O+Fvgyz054Ly886a4H3AzfKg9l9a8K8I3djp
+ofbNRDMiYCqn3hn+IfSvpHwxrtlNbwG2uoZQwDKUYcipqN3sXSstT3fSLgtZLgE7Bxk8kVeSXI6
Yb34NeXaB47jTUls5oiRjIPAwP8AGvSLLVLO9VGhkHmY4BOPwq0NrqT3QkA3EAqevFeO/GSCC8t4
/OvBZ30TZRucTf7J9M17fDLFLHhumfyrzD4u289kkV7Y29jdpISHhuoQ35HINHmT5HzdqmtXHzQx
QMRt+5KQyt/X8xUPgvw5cax4ogc6QtuP42hm+XHrg9K9M0R5NV1E22oeEbFI2HMkMsigj3UnivSN
O0uz0+MLZW0cIAx8o5x9a+ezvPYZfDkhrN/gdWGwjrO72JbG1S0to4IhhUGKsUdKK/LqtSVWbnN3
bPfjFRVkFFFFZjCiiigAooooAiu7aC8tJ7W7jEttOjRSxt0ZSMEV8afEnwfc+DPE0+nzbntX/eWs
xHEkZ6fiOh9xX2hXN+PvCNh4z0F9Ov8A93Ip329wBloX9fcHoRX0PD2cf2dW5an8OW/l5/5nFjcN
7eN47o+KMUVteLfDWpeFdYl03V4DFMnKOOUlXsynuDWKa/VoTjUipwd0+p8604uzEoooqhBRRRQA
UUUUAFFFFADqKKKAPs6Q4quTmppWqux9TXA0dSFBx1I/GoLmBJVORn8KeWAPFNZmI9PehMqxnG0j
jHIGPTOans1hV8dPpxSz7c4PNRAEDLYVaYWLsqoykBvzNUmjUNy+APSlYbwDvOP51RmGc7mO3oMm
gaJZZUQHbwvrVCe7WJS3GPWnSNEkZTOc9gaz7iUIdmzgcj2pMpFfV7mSSNySCMHGOCT6V454i0xI
9XkEACIyGQg9Ae9ei+IddtNPQtLIvmngKDk15tNrrS6qty8amL7u31FbUotaoxquL0MM9cHtWr4b
uryDVLdLA/vWcbQTwT6V1mk6fomtu8yqBNIf9XnGDius8PeE9JsLmO4EO9j/AHjnbWkqqWljONNt
no3gnQdNvI49Su4Wt9S2gSN5pK5/z616PZ2ESpHIkpKEYwD1+lcDorw+Q0SvsYjgnpiuh0WzkDEi
WQxg/Mu77p9R7VmpdWdFraHp+kJBHHhpWcnHXtWN4ztdMvJVE0CTuPVuVNNimgtrbd5sryYwA3b6
1lTStM+5ySa+cz7PoYWm6FF3m/wOjC4R1Jc8titBbwwDEMap9BU1Aor80nOU3zSd2e0klogoooqR
hRRRQAUUUUAFFFFAAaTmlooAxfF3hbSvFulGw1q382McxSKcSQt6o3b6dDXzD8RPhZrXhF5LmNDq
GkA/Ldwryg9JF6qffp719c0h6EdQRgj1r3cpz7EZa+Ve9Ds/07HJiMHCvq9H3PgWkr6x8a/B3w74
iaS5slOkX7ZJe3UGJz6tH/hivD/Fnwk8VeHvMlFl/aNmv/LxZZkGPdfvD8q/QsBn+CxySjLll2en
/AZ4tbB1aOrV13PPaKcylWKsCCDggjBFJXtHIJRRRQAUUUUAOooooA+yJDxUBOQcVJIRiq7knrXA
zqQhIB6Z+vSgsW69KaSBy3X0FRO5bHOB2AosWK7Kp45PrUMh/ifJzTicUx+mSOe1DAjcnOWJHHSq
twu/nP4VY69ckDk+9Qv9760kwOb1nVrfTlZpyV298V5p4g8cXV4ZIrDMMR43/wAVeo+JtHTU7F4t
uST09T715Tqfgm+tI5pmIwMtgd+elb03HqZVHLocnNNJPIXmdnc9SxzTKc8bocOpUj1puK6TnJbS
eW3nSSGRo2B+8pxXp/gLXtQvpBbzp5q4JWUD9K890LSbnVr5ILeF3BIDlR90etfRfw48Hpo9osZ+
djzyO9ZVGtjakncn0qxupnUmN1I+YV6HoVjLbQLJO5Ddh61f0+wjto1mkA9hUsjl2yfyr5LP83WD
g8PTfvv8EephaHtHzPYTJJ560Udq808bfF7TPCXiK40a70u9uJoVVjJFIgU7lDdDz3r4TCYLEY+o
4UFzStf+rnpVKsKMbzdkel0V4t/w0Fon/QE1P/v4lH/DQeif9ATUv+/kdej/AKtZn/z6/Ff5nP8A
X6H8x7TRXi3/AA0Hon/QE1L/AL+R0f8ADQeif9ATUv8Av5HR/q1mf/Pr8V/mP6/Q/m/M9porxb/h
oPRP+gJqX/f1K9e0i9XUtKsr+KNo47qFJlRjkqGGcGuPGZVisDFSxEOVPbVfozSliKdZ2g7luiii
vONwooooAKKKKACiiigAoBIIK8EdxRQaAPlz9o7Qk0vxwl/BGqQ6nCJjtGB5gO1/z4P415RX0p+0
9pwn8KaVqAX57W7MRPorr/ior5rNfr/D2JeJy+nKT1Wj+Wn5HzONhyVpJDaKKK9o5QooooAdRRRQ
B9gO3NQyMAOOT/KhnwKgc5rhZ1IGbJPvTGb86axphOPrSLHlh+A6n1pjPkkmmuecDt1ppPP1ouAr
HCY7k1Ex6+1Pc/Mf0qJutIY33qCeBJVKuAQeORUxNNJpDSuc3qHhKwvN3mRKCxySBSWfgHSkSRHh
VlcHr1GeK6iPk1ftFy/NUpMXKhfDXh+1sIlSKGNWUAbgOuK9F0ayRYw5UA46elczYFFUKSAe1dTZ
MyQgnr29/es8Ti6eDpOtVeiKhTdR8sS3dHKjt7VB2pGJY5JNFflGZ4147EyrtWue3Rp+ygoga+Xf
i7FDcfHVYLtBJbyz2iSoTjcpCAjj2r6ir5b+MEiRfHMSTOscSTWjO7HAUAJkmve4N/36X+F/mjiz
T+EvU9y1fwL8JH+Io+H58M3Npqt1aefFewTybVOCcDLnBwpPIxXkvwZ+H+kXXx01jwn4mtk1OzsU
uYwGZkDNG6hW+Ug9M8e9enfFb47aL4Y8XtN4Y0XRNbv3sgI9YjmVmTJPyEqMkDAONw615b+zZ4ot
Lb4yXmu+KtUtrX7Ta3EktzcyCNWldlJ5PGTzxX6YeCaPxz0Pwxpfhab+xfh5rfh27iv1hXULoN5M
qjdkKS5znAI47U79l7wD4f8AEUWua34ztYJ9KtjFaQC4cqhmc+oI5+6B/vVo/tATQX3hC4n/AOFo
w+JY/tyyW2lxRw/JndyWQ7iFUkVs+EfF/wAPvA3wU8P6Vr0i6xcXk4v7m1sJVaSKUMHUvhgRtwg5
7igD5/8Aid4abwh481vQyCI7W4YQk94j8yH/AL5Ir668Ff8AIm6D/wBeEH/oArxP9qm/8O+JNV0D
xP4b1OzunvbTyrmGKVTJGVwVLqOhwxU5/u4r2zwV/wAiboP/AF4Qf+gCvi+Nf93per/I9XKvjl6G
zRRRX50e2FFFFABRRRQAUUUUAFFFFAHC/G+yF98L9aGMtAqXA/4C4/oTXx/2r7i8Z2n27whrlqOT
LYzLj/gBP9K+He1fpPBlXmws6faX5pf5HhZpG1RPuhtFFFfYHmBRRRQA6iiigD60Z+KYckUUVxnW
Rt0pDxuI7cD60UVLQyHtSKfm5ooqVuMaTTCaKKGhohLc0g9PSiikUiWI4xnvVyGXC/KORRRSuB1O
g6ebkJPKfkHP4103sOlFFfnXEeLq1cS6Un7sdj1sHTio8y3Fooor5060gr5L/aD/AOSo6n/1zh/9
FiiivreDf99l/hf5o8zNVakvU84paKK/TTwRKXvRRQAlfcPgn/kTdB/68IP/AEAUUV8Vxr/u9L/E
/wAj1Mr+OXobVFFFfnR7tgooooCwUtFFAWEooooCwUtFFAWGSp5sUkZ6OjL+YIr4LuY/JuJYv7jl
fyNFFfe8Eyf75f4f1PGzVfD8yLFGKKK+9PHDFGKKKAFxRRRUiP/Z

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.zulupa.com.br/layout/imagens/loading.gif

R0lGODlhEAALAPQAAOnq3QAAAMfIvb6/tNbXywUFBQAAACoqKHd3cVhYU6qroR8fHUNEQH5/eFtc
V66vpSIjIQMDA0dHQ9LTyMbGu9/g1DMzMMnKv93e0qannpKTi7m6r9rbzwAAAAAAAAAAACH/C05F
VFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAA
EAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJ
CwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJ
CwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHT
uBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V5
5zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme
1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAA
ABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2
y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2
isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0
DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.zulupa.com.br/layout/imagens/asterisco.gif

R0lGODlhDQAQALMAAOnq3ZYAAOPazsJ9dpwQD6EfHd7LwMiMhaw+O9i7sbJOStOsordeWL1tZ6cv
LM2ckyH5BAEAAAAALAAAAAANABAAAARIEMhJq704axlC091gGVM4CYAQKAcQGkPBAEcXEMRtE8DC
FLYgYoCSGIChIqWmKygliY5j0UFQBLlAAtAwTR4EUaqgeKYopEkEADs=

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.zulupa.com.br/files/anuncios/5ab9db61-e296-4b1f-8767-a302ed2b08e9.jpg

/9j/4AAQSkZJRgABAgEAAgACAAD/4QlHRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp
AAQAAAABAAAApAAAANAAADwHAAAnEAAAPAcAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dz
ADIwMTE6MDM6MTAgMTE6NDI6MzMAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACXaADAAQAAAAB
AAAAZAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAgRAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAGgCgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A7/NzKcDCuzb9xqx2F7wwS49g1jf3nOKC3qtw2ts6XmsvdBbU
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
AAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP//
//////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA////
/////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQA
AAAAAAACAAQ4QklNBAIAAAAAAAoAAAAAAAAAAAAAOEJJTQQwAAAAAAAFAQEBAQEAOEJJTQQtAAAA
AAACAAA4QklNBAgAAAAAABAAAAABAAACQAAAAkAAAAAAOEJJTQQeAAAAAAAEAAAAADhCSU0EGgAA
AAADUQAAAAYAAAAAAAAAAAAAAGQAAAJdAAAADgBhAG4A+gBuAGMAaQBvACAAWgB1AGwAdQBwAGEA
AAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAl0AAABkAAAAAAAAAAAAAAAAAAAAAAEA
AAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNPYmpjAAAAAQAA
AAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcA
AABkAAAAAFJnaHRsb25nAAACXQAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAAAAAFc2xpY2UA
AAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3JpZ2luZW51bQAA
AAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApFU2xpY2VUeXBl
AAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAA
AAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAZAAAAABSZ2h0bG9uZwAAAl0AAAADdXJsVEVY
VAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdURVhU
AAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAAAQAAAAAACWhv
cnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVydEFsaWduZW51
bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVudW0AAAARRVNs
aWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAApsZWZ0T3V0c2V0
bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRsb25nAAAAAAA4
QklNBCgAAAAAAAwAAAABP/AAAAAAAAA4QklNBBQAAAAAAAQAAAALOEJJTQQMAAAAAAgtAAAAAQAA
AKAAAAAaAAAB4AAAMMAAAAgRABgAAf/Y/+AAEEpGSUYAAQIAAEgASAAA/+0ADEFkb2JlX0NNAAH/
7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEM
DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBER
DAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAaAKADASIAAhEBAxEB/90A
BAAK/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAID
BAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0
coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl
9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSIT
BTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj
80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwDv83Mp
wMK7Nv3GrHYXvDBLj2DWN/ec4oLeq3Da2zpeay90FtQZW9pn/u0y77LXt/7sW0qxlYtWZi24t5c2
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
AAAIAAAAAAAAAAA4QklND6EAAAAAABxtZnJpAAAAAgAAABAAAAABAAAAAAAAAAEAAAAAOEJJTQQG
AAAAAAAHAAYAAAABAQD/4Q/MaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQg
YmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHht
bG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA0LjEtYzAzNiA0
Ni4yNzY3MjAsIE1vbiBGZWIgMTkgMjAwNyAyMjo0MDowOCAgICAgICAgIj4gPHJkZjpSREYgeG1s
bnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJk
ZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9l
bGVtZW50cy8xLjEvIiB4bWxuczp4YXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHht
bG5zOnhhcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i
aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6dGlm
Zj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5h
ZG9iZS5jb20vZXhpZi8xLjAvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20v
cGhvdG9zaG9wLzEuMC8iIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgeGFwOkNyZWF0b3JUb29sPSJB
ZG9iZSBQaG90b3Nob3AgQ1MzIFdpbmRvd3MiIHhhcDpDcmVhdGVEYXRlPSIyMDExLTAzLTEwVDEx
OjQyOjMzLTAzOjAwIiB4YXA6TW9kaWZ5RGF0ZT0iMjAxMS0wMy0xMFQxMTo0MjozMy0wMzowMCIg
eGFwOk1ldGFkYXRhRGF0ZT0iMjAxMS0wMy0xMFQxMTo0MjozMy0wMzowMCIgeGFwTU06RG9jdW1l
bnRJRD0idXVpZDo3NDQ4RjAzRTI0NEJFMDExOUZGRDhCRDIzOTRBNkZBRCIgeGFwTU06SW5zdGFu
Y2VJRD0idXVpZDo5QjQ2MjFBMjI0NEJFMDExOUZGRDhCRDIzOTRBNkZBRCIgdGlmZjpPcmllbnRh
dGlvbj0iMSIgdGlmZjpYUmVzb2x1dGlvbj0iMTUzNjcvMTAwMDAiIHRpZmY6WVJlc29sdXRpb249
IjE1MzY3LzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0i
MjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwz
MTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7OTM2NTQyMDNBN0Yz
RDJEMkQ3ODNDMDJFODk0QkJGMkMiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI2MDUiIGV4aWY6UGl4
ZWxZRGltZW5zaW9uPSIxMDAiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9
IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2
ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4
LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQx
NDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5
LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQx
OTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywx
NCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDs3QzVCRjAxNDRBQjE2QzVC
RDM4MTMxNUQ0QTgyRUNDMCIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1By
b2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIj4gPHhhcE1NOkRl
cml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6NzE0OEYwM0UyNDRCRTAxMTlGRkQ4QkQy
Mzk0QTZGQUQiIHN0UmVmOmRvY3VtZW50SUQ9InV1aWQ6NERCMjY1MEMyMzRCRTAxMTk0MTRERUM3
N0I4MzVDRUQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFj
a2V0IGVuZD0idyI/Pv/iDFhJQ0NfUFJPRklMRQABAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfO
AAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAABAAD21gABAAAAANMtSFAg
IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQ
AAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA
AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZp
ZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAI
DGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xl
dHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAA
AAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFla
IAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbP
ZGVzYwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93
d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRl
c2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAA
AAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAA
AAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRp
b24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9u
IGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRf
LgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAA
AAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkA
HgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp
AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUB
TAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQIm
Ai8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MD
TwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2
BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoG
ewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiC
CJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK
8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2p
DcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ
1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJ
FGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsY
QBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7
HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwh
SCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZX
JocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9Es
BSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHy
MioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4
jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9h
P6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG
8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63
TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdX
RFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AF
YFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNp
mmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNd
c7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+
AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjO
iTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCU
ipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBp
oNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCt
RK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7
urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/I
Pci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV
1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5Pzl
hOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC
9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////uAA5BZG9iZQBkQAAAAAH/
2wCEAAICAgICAgICAgIDAgICAwQDAgIDBAUEBAQEBAUGBQUFBQUFBgYHBwgHBwYJCQoKCQkMDAwM
DAwMDAwMDAwMDAwBAwMDBQQFCQYGCQ0KCQoNDw4ODg4PDwwMDAwMDw8MDAwMDAwPDAwMDAwMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAGQCXQMBEQACEQEDEQH/3QAEAEz/xAGiAAAABwEBAQEB
AAAAAAAAAAAEBQMCBgEABwgJCgsBAAICAwEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAgEDAwIE
AgYHAwQCBgJzAQIDEQQABSESMUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLxJUM0U5KismNz
wjVEJ5OjszYXVGR0w9LiCCaDCQoYGYSURUaktFbTVSga8uPzxNTk9GV1hZWltcXV5fVmdoaWprbG
1ub2N0dXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6PgpOUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6
EQACAgECAwUFBAUGBAgDA20BAAIRAwQhEjFBBVETYSIGcYGRMqGx8BTB0eEjQhVSYnLxMyQ0Q4IW
klMlomOywgdz0jXiRIMXVJMICQoYGSY2RRonZHRVN/Kjs8MoKdPj84SUpLTE1OT0ZXWFlaW1xdXl
9UZWZnaGlqa2xtbm9kdXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6Pg5SVlpeYmZqbnJ2en5KjpKWmp6
ipqqusra6vr/2gAMAwEAAhEDEQA/APsuBmwdSrKuBKqBgVVUYGSqBgSqgYslVVwJVQuBKoB4YpVA
v04E0qBcCVwXFVQJgtK8Liq4LgTS4LirfHFK7jitN8cUt8cFq3QYq3T2xVuhxV3E4q3x98Vb44q7
iMVdxHhirdPbFadQYppumK06hxWnU9sVp1PbFab4nFadxOK07ifDFXcT4Yq7ifDFXcTitO4nFaap
7YrTqe2K06hxWmqYrTqDFFOpitNcR4Yq7iMVa44q7j74q1xOKuocVap7YqxK+89eStM8x2PlDUPN
elWPmnUghsPL893El3L6vL0+ELMGJfg3EU+KhpWmZMNHnnjOWMJGA5mjXzcWetwQyjFKcRM8o2L+
TK+OY1uUpyPHEFaWRYwzKiliFqzGigV7kmgGEC0Egc1xXFaYhqfnvyRo3mLT/KOsebNJ0rzRq8Uc
+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

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.zulupa.com.br/layout/imagens/soluty.gif

R0lGODlhMgAOAPcAAAAAAP////b29/T09fLy8/Dw8e/v8O7u7+3t7uzs7evr7Orq6+np6ujo6eTk
5eLi4+Hh4t/f4L2+wbu8v7q7vrm6vbe4u7S1uLKztrGytbCxtK+ws66vsq2usdjZ29bX2dXW2NTV
19LT1dHS1NDR08/Q0s7P0c3O0MzNz8vMzsrLzcnKzMjJy8fIysbHycTFx8PExsLDxcHCxMDBw76/
wbGztrCyta6ws62vsqyusautsKqsr6mrrqiqraeprLW3urS2ubO1uLK0t8fJy8LExsDCxL/Bw77A
wry+wLu9v7m7vbi6vLe5u7a4urW3ubS2uLO1t7K0trCytK+xs+fo6ebn6OXm5+Tl5uPk5eLj5OHi
49/g4d7f4Nvc3drb3Nna29jZ2tfY2dbX2NXW19TV1tPU1dLT1NHS09DR0s7P0M3Oz/n6+vj5+ff4
+Pb39/X29vT19fP09PLz8/Hy8u/w8O7v7+3u7urr6/7+/v39/fz8/Pv7+/r6+vn5+fj4+Pf39/X1
9fT09PPz8/Hx8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAMgAOAAAI/wADCHRj
hsmNG01IABLIsKHDhxAjPsxyg0KYBg3AKOmwRaLELC3WQOzj52OPD4EcevERwSPEEj7aPBSgwUvE
PzvABEjCYiHDLj0GNFzgoYsBgWu0eLiSJ8CIHgbqNA0Q6AAEHycSIIDD8M2BM04EVvAxBYwehktQ
METTo8aGHGwKCPGxwYeSPmR0oPEhR2AMHlJ84IiiIwqfAHiAFPmhMwAFH5CXOBDYJQqeAHt8DBFo
h40SDgf0VPGBAoQOmH0DHGlywAeIPQx86KTi4w4HBgIfQ4ZspM4BHCXxHOFB5IsbAT5EMHyBwUSH
vamPLBHkw4PAFzfyyJgQgMOC3LshW+1YYAC4wDxdjHTI8cXHB4ZDbJzAATOOwBlM5lQXSKAHCh1V
BHBBF+BBloEXl0WQQVN7zCGQHD6oYMEPfQQgSA4vhKDDGD5YEYAbUCgBIQgBnAVTEgKhQIFASviw
gwl/MIRECwL1gcMTNFzQwwIM8MBBEjzcIEgZPiSwwQ4SQJEDE3pAoQMSm8WGhUBx9NDREkXU0dAD
PhQgEB5XqOFCGgoIRAcaLYhREiAeDoJCC1YkkEUedaSwQgN5KBHEZZT5wIWDDWXRQxguFRpRAUlM
2ZAHO8DwAB0FZPHXGIZWWmkdLkiBAw4avICApaBGFBAAOw==

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.zulupa.com.br/layout/css/zulupa.css

@font-face {
	font-family: Museo 500;
	src: url(/fontes/museo500-regular-webfont.eot), =
url(/fontes/museo500-regular-webfont.woff) format("woff"), =
url(/fontes/museo500-regular-webfont.ttf) format("truetype"), =
url(/fontes/museo500-regular-webfont.svg#webfontQoi5LXhI) format("svg");
	font-weight: normal;
	font-style: normal;
}
* {
	list-style: none; margin: 0px; padding: 0px; border: 0px; font-weight: =
normal;
}
BODY {
	background: rgb(255, 255, 255); margin: 0px; color: rgb(51, 51, 51); =
line-height: 19px; font-family: Arial, Helvetica, sans-serif, Verdana; =
font-size: 13px; cursor: default; min-width: 1000px;
}
A {
	color: rgb(51, 51, 51); text-decoration: none;
}
A:hover {
	color: rgb(51, 51, 51); text-decoration: underline;
}
A * {
	cursor: pointer;
}
B {
	font-weight: bold;
}
B * {
	font-weight: bold;
}
STRONG {
	font-weight: bold;
}
STRONG * {
	font-weight: bold;
}
H1 {
	line-height: 37px; font-family: "Museo 500" , Arial, Helvetica, =
sans-serif, Verdana; font-size: 33px; margin-bottom: 2px;
}
H2 {
	color: rgb(153, 153, 153); line-height: 17px; padding-bottom: 12px; =
font-size: 13px; font-weight: bold;
}
H3 {
	line-height: 19px; padding-bottom: 12px; font-size: 15px; font-weight: =
bold;
}
H4 {
	color: rgb(85, 85, 85); text-transform: uppercase; line-height: 16px; =
padding-bottom: 3px; font-family: "Museo 500" , Arial, Helvetica, =
sans-serif, Verdana; font-size: 15px; margin-bottom: 8px; =
border-bottom-color: rgb(252, 175, 23); border-bottom-width: 1px; =
border-bottom-style: solid;
}
H6 {
	color: rgb(252, 175, 23); text-transform: uppercase; line-height: 19px; =
padding-bottom: 12px; font-family: "Museo 500" , Arial, Helvetica, =
sans-serif, Verdana; font-size: 15px;
}
P {
	margin-bottom: 12px;
}
INPUT {
	padding: 2px; border: 1px solid rgb(153, 153, 153); color: rgb(85, 85, =
85); font-family: Arial, Sans-Serif; font-size: 13px; margin-right: 3px;
}
TEXTAREA {
	padding: 2px; border: 1px solid rgb(153, 153, 153); color: rgb(85, 85, =
85); font-family: Arial, Sans-Serif; font-size: 13px; margin-right: 3px;
}
SELECT {
	padding: 2px; border: 1px solid rgb(153, 153, 153); color: rgb(85, 85, =
85); font-family: Arial, Sans-Serif; font-size: 13px; margin-right: 3px;
}
TEXTAREA {
	overflow: auto;
}
INPUT:focus {
=09
}
TEXTAREA:focus {
=09
}
SELECT:focus {
=09
}
TABLE {
	border-collapse: collapse; border-spacing: 0px;
}
#topo {
	background: url(/layout/imagens/bg-topo-geral1.jpg) no-repeat center =
top; position: relative;
}
#topo #topo-content {
	margin: auto; width: 1000px; height: 220px; position: relative;
}
#topo #topo-content .zulupa {
	left: 10px; top: 20px; position: absolute;
}
#topo #topo-content .busca {
	top: 185px; right: 7px; position: absolute;
}
#barra-horizontal {
	background: rgb(0, 0, 0); color: rgb(255, 255, 255); line-height: 22px; =
position: relative;
}
#barra-horizontal #barra-content {
	margin: auto; padding: 0px 10px; width: 980px; position: relative;
}
#barra-horizontal #barra-content #breadcrumbs {
	color: rgb(85, 85, 85); text-transform: lowercase; font-size: 11px;
}
#barra-horizontal #barra-content #breadcrumbs A {
	color: rgb(85, 85, 85);
}
#barra-horizontal #barra-content #data {
	width: 230px; text-align: right; color: rgb(204, 204, 204); font-size: =
13px; float: right; display: block;
}
#container {
	margin: auto; width: 1000px; position: relative;
}
#container #menu {
	background: url(/layout/imagens/black_dot.gif) rgb(0, 0, 0); margin: =
0px 20px 20px 0px; padding: 0px 0px 20px; width: 195px; color: rgb(255, =
255, 255); float: left; display: block;
}
#container #menu A {
	margin: 2px 10px; color: rgb(255, 255, 255); display: block;
}
#container #menu A:hover {
	color: rgb(119, 119, 119); text-decoration: none;
}
#container #menu A.menu-principal {
	background: rgb(17, 17, 17); margin: 20px 0px 8px; padding: 0px 10px; =
color: rgb(252, 175, 23); text-transform: uppercase; line-height: 23px; =
font-family: "Museo 500" , Arial, Helvetica, sans-serif, Verdana; =
font-size: 14px; border-bottom-color: rgb(34, 34, 34); =
border-bottom-width: 1px; border-bottom-style: solid;
}
#container #menu A.menu-principal:hover {
	background: rgb(51, 51, 51); color: rgb(252, 175, 23); =
border-bottom-color: rgb(252, 175, 23);
}
#container #content {
	margin: 20px 20px 0px 0px; width: 605px; float: left; display: block;
}
#container #content .banner-topo {
	margin-bottom: 10px;
}
#container #content .coluna-2 {
	width: 295px; margin-right: 15px; float: left; display: block;
}
#container #content .coluna-4 {
	width: 140px; margin-right: 15px; float: left; display: block;
}
#container #content .no-margin-right {
	margin-right: 0px !important;
}
#container #content .box-destaque {
	margin-bottom: 20px;
}
#container #content .box-destaque SPAN.topo {
	background: url(/layout/imagens/black_dot.gif) rgb(0, 0, 0); padding: =
5px; color: rgb(255, 255, 255); text-transform: uppercase; line-height: =
1.1em; font-family: "Museo 500" , Arial, Helvetica, sans-serif, Verdana; =
font-size: 11px; display: block; border-top-left-radius: 5px; =
border-top-right-radius: 5px;
}
#container #content .box-destaque A {
	background: url(/layout/imagens/bg-box-destaque.gif) repeat-x center =
50% rgb(217, 226, 230); padding: 15px 0px; line-height: 1.3em; =
font-size: 11px; display: block;
}
#container #content .box-destaque A IMG {
	margin-bottom: 5px; border-top-color: rgb(102, 102, 102); =
border-bottom-color: rgb(102, 102, 102); border-top-width: 1px; =
border-bottom-width: 1px; border-top-style: solid; border-bottom-style: =
solid; display: block;
}
#container #content .box-destaque A SPAN {
	padding: 0px 10px; font-weight: bold; display: block;
}
#container #content .box-destaque DIV.fechamento {
	background: url(/layout/imagens/black_dot.gif) rgb(0, 0, 0); height: =
10px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px;
}
#container #content .criado {
	color: rgb(153, 153, 153); line-height: 12px; font-size: 10px; =
margin-bottom: 2px;
}
#container #content .imagem-principal-box {
	margin: 2px 0px 10px 10px; float: right;
}
#container #content .imagem-principal-box SPAN {
	background: url(/layout/imagens/white_dot.gif) rgb(233, 234, 221); =
padding: 6px; color: rgb(102, 102, 102); line-height: 13px; font-size: =
11px; display: block; border-bottom-right-radius: 5px; =
border-bottom-left-radius: 5px;
}
#container #content .imagem-box {
	margin: auto auto 30px;
}
#container #content .imagem-box SPAN {
	color: rgb(153, 153, 153); line-height: 15px; font-size: 11px; =
font-weight: bold; margin-top: 3px; display: block;
}
#container #content .form-box {
	background: url(/layout/imagens/white_dot.gif) rgb(233, 234, 221); =
padding: 20px; color: rgb(102, 102, 102); margin-bottom: 20px;
}
#container #content .form-box H6 {
	padding: 0px; color: rgb(51, 51, 51); margin-bottom: 20px;
}
#container #content .form-box TABLE TH {
	text-align: right; color: rgb(119, 119, 119); line-height: 22px; =
padding-right: 5px; font-size: 11px;
}
#container #content .form-box TABLE TH {
	padding-bottom: 2px; vertical-align: top;
}
#container #content .form-box TABLE TD {
	padding-bottom: 2px; vertical-align: top;
}
#container #content #rodape {
	line-height: 13px; font-size: 9px; margin-top: 40px; position: =
relative;
}
#container #content #rodape #menu-rodape {
	font-size: 9px;
}
#container #content #rodape P {
	margin-bottom: 15px;
}
#container #barra-anuncios {
	width: 160px; margin-top: 20px; float: left; display: block;
}
#container #barra-anuncios P {
	margin-bottom: 20px;
}
.fechamento-box-preto {
	background: url(/layout/imagens/black_dot.gif) rgb(0, 0, 0); height: =
10px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px;
}
.fechamento-box-azul {
	background: url(/layout/imagens/black_dot.gif) rgb(0, 0, 0); height: =
10px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px;
}
.fechamento-box-azul {
	background: url(/layout/imagens/blue_dot.gif) rgb(14, 27, 36) =
!important;
}
.float-right {
	margin: 2px 0px 10px 10px; float: right;
}
.botao-preto {
	background: rgb(0, 0, 0); border-color: rgb(51, 51, 51); padding: 2px =
4px; color: rgb(204, 204, 204); font-size: 11px;
}
.clear {
	clear: both;
}
.hr {
	margin: 20px 0px; border-bottom-color: rgb(252, 175, 23); =
border-bottom-width: 1px; border-bottom-style: solid;
}
.font-11-cinza {
	color: rgb(119, 119, 119); font-size: 11px;
}
.font-11-vermelha {
	color: rgb(150, 0, 0); font-size: 11px;
}
.required {
	color: rgb(150, 0, 0); font-size: 11px;
}
.required IMG {
	vertical-align: top;
}
.empty {
	font-weight: bold; margin-top: 20px;
}

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.zulupa.com.br/layout/css/colunas.css

#topo {
	background-image: url("/layout/imagens/bg-topo-colunas.jpg") =
!important;
}
#container #content #lista-artigos LI {
	color: rgb(102, 102, 102); margin-bottom: 20px;
}
#container #content #lista-artigos .titulo-secao {
	color: rgb(252, 175, 23); margin-bottom: 10px; border-bottom-color: =
rgb(252, 175, 23); border-bottom-width: 1px; border-bottom-style: solid; =
display: block;
}
#container #content #lista-artigos .titulo {
	line-height: 1.1em; font-family: "Museo 500" , Arial, Helvetica, =
sans-serif, Verdana; font-size: 27px; margin-bottom: 8px; display: =
block;
}
#container #content #lista-artigos .imagem {
	margin-right: 15px; float: left; display: block;
}
#container #content #lista-artigos .primeiro-artigo .titulo-secao {
	width: 575px; color: rgb(93, 143, 101); border-bottom-color: rgb(93, =
143, 101);
}
#container #content #lista-artigos .primeiro-artigo {
	background: url(/layout/imagens/white_dot.gif) rgb(221, 234, 223); =
padding: 15px; margin-top: 20px;
}
#container #content #colunista {
	margin: 20px 0px; color: rgb(85, 85, 85); line-height: 13px; font-size: =
11px;
}
#container #content #colunista SPAN {
	font-weight: bold;
}

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.zulupa.com.br/WebResource.axd?d=HfcGgolzuVsCQWv3Fz9NhKz56ucnsIxDoOpqSIWzhQ2AwY_o9jzz_WmT3AL6x2hP2XTmAZ2haoYC-2Y-u8qf0Sx7iBDbg2dW5KtYP_OXixMx03x_4hXtG3zvoO4Hc9LV6rkD42CQV9JfZ0HwVjV9hnDyueg1&t=634341658461430741

.ErrorMsg {
	background: rgb(242, 221, 221); margin: 5px; padding: 0px; border: 1px =
solid rgb(153, 42, 42); width: 100%; font-family: Verdana,Arial;
}
.ErrorMsg H4 {
	background: rgb(227, 192, 192); margin: 0px; padding: 5px; border: 0px =
0px 1px none none solid   rgb(153, 42, 42); color: rgb(153, 42, 42); =
font-size: 12px; font-weight: bold;
}
.ErrorMsg P {
	margin: 0px; padding: 8px; border: 0px; color: rgb(153, 42, 42); =
font-size: 12px;
}

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.zulupa.com.br/scripts/jquery-1.4.4.min.js

/*!=0A=
 * jQuery JavaScript Library v1.4.4=0A=
 * http://jquery.com/=0A=
 *=0A=
 * Copyright 2010, John Resig=0A=
 * Dual licensed under the MIT or GPL Version 2 licenses.=0A=
 * http://jquery.org/license=0A=
 *=0A=
 * Includes Sizzle.js=0A=
 * http://sizzlejs.com/=0A=
 * Copyright 2010, The Dojo Foundation=0A=
 * Released under the MIT, BSD, and GPL Licenses.=0A=
 *=0A=
 * Date: Thu Nov 11 19:04:53 2010 -0500=0A=
 */=0A=
(function(E,B){function =
ka(a,b,d){if(d=3D=3D=3DB&&a.nodeType=3D=3D=3D1){d=3Da.getAttribute("data-=
"+b);if(typeof =
d=3D=3D=3D"string"){try{d=3Dd=3D=3D=3D"true"?true:d=3D=3D=3D"false"?false=
:d=3D=3D=3D"null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d=
):d}catch(e){}c.data(a,b,d)}else d=3DB}return d}function U(){return =
false}function ca(){return true}function la(a,b,d){d[0].type=3Da;return =
c.event.handle.apply(b,d)}function Ka(a){var =
b,d,e,f,h,l,k,o,x,r,A,C=3D[];f=3D[];h=3Dc.data(this,this.nodeType?"events=
":"__events__");if(typeof h=3D=3D=3D"function")h=3D=0A=
h.events;if(!(a.liveFired=3D=3D=3Dthis||!h||!h.live||a.button&&a.type=3D=3D=
=3D"click")){if(a.namespace)A=3DRegExp("(^|\\.)"+a.namespace.split(".").j=
oin("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=3Dthis;var =
J=3Dh.live.slice(0);for(k=3D0;k<J.length;k++){h=3DJ[k];h.origType.replace=
(X,"")=3D=3D=3Da.type?f.push(h.selector):J.splice(k--,1)}f=3Dc(a.target).=
closest(f,a.currentTarget);o=3D0;for(x=3Df.length;o<x;o++){r=3Df[o];for(k=
=3D0;k<J.length;k++){h=3DJ[k];if(r.selector=3D=3D=3Dh.selector&&(!A||A.te=
st(h.namespace))){l=3Dr.elem;e=3Dnull;if(h.preType=3D=3D=3D"mouseenter"||=0A=
h.preType=3D=3D=3D"mouseleave"){a.type=3Dh.preType;e=3Dc(a.relatedTarget)=
.closest(h.selector)[0]}if(!e||e!=3D=3Dl)C.push({elem:l,handleObj:h,level=
:r.level})}}}o=3D0;for(x=3DC.length;o<x;o++){f=3DC[o];if(d&&f.level>d)bre=
ak;a.currentTarget=3Df.elem;a.data=3Df.handleObj.data;a.handleObj=3Df.han=
dleObj;A=3Df.handleObj.origHandler.apply(f.elem,arguments);if(A=3D=3D=3Df=
alse||a.isPropagationStopped()){d=3Df.level;if(A=3D=3D=3Dfalse)b=3Dfalse;=
if(a.isImmediatePropagationStopped())break}}return b}}function =
Y(a,b){return(a&&a!=3D=3D"*"?a+".":"")+b.replace(La,=0A=
"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return =
c.grep(a,function(f,h){return!!b.call(f,h,f)=3D=3D=3Dd});else =
if(b.nodeType)return c.grep(a,function(f){return =
f=3D=3D=3Db=3D=3D=3Dd});else if(typeof b=3D=3D=3D"string"){var =
e=3Dc.grep(a,function(f){return =
f.nodeType=3D=3D=3D1});if(Na.test(b))return c.filter(b,e,!d);else =
b=3Dc.filter(b,e)}return c.grep(a,function(f){return =
c.inArray(f,b)>=3D0=3D=3D=3Dd})}function na(a,b){var =
d=3D0;b.each(function(){if(this.nodeName=3D=3D=3D(a[d]&&a[d].nodeName)){v=
ar e=3Dc.data(a[d++]),f=3Dc.data(this,=0A=
e);if(e=3De&&e.events){delete f.handle;f.events=3D{};for(var h in =
e)for(var l in =
e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function =
Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalE=
val(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.re=
moveChild(b)}function oa(a,b,d){var =
e=3Db=3D=3D=3D"width"?a.offsetWidth:a.offsetHeight;if(d=3D=3D=3D"border")=
return =
e;c.each(b=3D=3D=3D"width"?Pa:Qa,function(){d||(e-=3DparseFloat(c.css(a,"=
padding"+this))||0);if(d=3D=3D=3D"margin")e+=3DparseFloat(c.css(a,=0A=
"margin"+this))||0;else =
e-=3DparseFloat(c.css(a,"border"+this+"Width"))||0});return e}function =
da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a=
)?e(a,h):da(a+"["+(typeof =
h=3D=3D=3D"object"||c.isArray(h)?f:"")+"]",h,d,e)});else =
if(!d&&b!=3Dnull&&typeof =
b=3D=3D=3D"object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a=
+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var =
d=3D{};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=3Da});=
return d}function qa(a){if(!ea[a]){var b=3Dc("<"+=0A=
a+">").appendTo("body"),d=3Db.css("display");b.remove();if(d=3D=3D=3D"non=
e"||d=3D=3D=3D"")d=3D"block";ea[a]=3Dd}return ea[a]}function =
fa(a){return =
c.isWindow(a)?a:a.nodeType=3D=3D=3D9?a.defaultView||a.parentWindow:false}=
var t=3DE.document,c=3Dfunction(){function =
a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTim=
eout(a,1);return}b.ready()}}var b=3Dfunction(j,s){return new =
b.fn.init(j,s)},d=3DE.jQuery,e=3DE.$,f,h=3D/^(?:[^<]*(<[\w\W]+>)[^>]*$|#(=
[\w\-]+)$)/,l=3D/\S/,k=3D/^\s+/,o=3D/\s+$/,x=3D/\W/,r=3D/\d/,A=3D/^<(\w+)=
\s*\/?>(?:<\/\1>)?$/,=0A=
C=3D/^[\],:{}\s]*$/,J=3D/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=3D/"[^"\\=
\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=3D/(?:^|:|,=
)(?:\s*\[)+/g,L=3D/(webkit)[ \/]([\w.]+)/,g=3D/(opera)(?:.*version)?[ =
\/]([\w.]+)/,i=3D/(msie) ([\w.]+)/,n=3D/(mozilla)(?:.*? =
rv:([\w.]+))?/,m=3Dnavigator.userAgent,p=3Dfalse,q=3D[],u,y=3DObject.prot=
otype.toString,F=3DObject.prototype.hasOwnProperty,M=3DArray.prototype.pu=
sh,N=3DArray.prototype.slice,O=3DString.prototype.trim,D=3DArray.prototyp=
e.indexOf,R=3D{};b.fn=3Db.prototype=3D{init:function(j,=0A=
s){var v,z,H;if(!j)return =
this;if(j.nodeType){this.context=3Dthis[0]=3Dj;this.length=3D1;return =
this}if(j=3D=3D=3D"body"&&!s&&t.body){this.context=3Dt;this[0]=3Dt.body;t=
his.selector=3D"body";this.length=3D1;return this}if(typeof =
j=3D=3D=3D"string")if((v=3Dh.exec(j))&&(v[1]||!s))if(v[1]){H=3Ds?s.ownerD=
ocument||s:t;if(z=3DA.exec(j))if(b.isPlainObject(s)){j=3D[t.createElement=
(z[1])];b.fn.attr.call(j,s,true)}else =
j=3D[H.createElement(z[1])];else{z=3Db.buildFragment([v[1]],[H]);j=3D(z.c=
acheable?z.fragment.cloneNode(true):z.fragment).childNodes}return =
b.merge(this,=0A=
j)}else{if((z=3Dt.getElementById(v[2]))&&z.parentNode){if(z.id!=3D=3Dv[2]=
)return =
f.find(j);this.length=3D1;this[0]=3Dz}this.context=3Dt;this.selector=3Dj;=
return this}else =
if(!s&&!x.test(j)){this.selector=3Dj;this.context=3Dt;j=3Dt.getElementsBy=
TagName(j);return b.merge(this,j)}else =
return!s||s.jquery?(s||f).find(j):b(s).find(j);else =
if(b.isFunction(j))return =
f.ready(j);if(j.selector!=3D=3DB){this.selector=3Dj.selector;this.context=
=3Dj.context}return =
b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){=
return this.length},=0A=
toArray:function(){return N.call(this,0)},get:function(j){return =
j=3D=3Dnull?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:functi=
on(j,s,v){var =
z=3Db();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=3Dthis;z.cont=
ext=3Dthis.context;if(s=3D=3D=3D"find")z.selector=3Dthis.selector+(this.s=
elector?" ":"")+v;else =
if(s)z.selector=3Dthis.selector+"."+s+"("+v+")";return =
z},each:function(j,s){return =
b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b=
);else q&&q.push(j);return this},eq:function(j){return j=3D=3D=3D=0A=
-1?this.slice(j):this.slice(j,+j+1)},first:function(){return =
this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return =
this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","=
))},map:function(j){return =
this.pushStack(b.map(this,function(s,v){return =
j.call(s,v,s)}))},end:function(){return =
this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init=
.prototype=3Db.fn;b.extend=3Db.fn.extend=3Dfunction(){var =
j,s,v,z,H,G=3Darguments[0]||{},K=3D1,Q=3Darguments.length,ga=3Dfalse;=0A=
if(typeof =
G=3D=3D=3D"boolean"){ga=3DG;G=3Darguments[1]||{};K=3D2}if(typeof =
G!=3D=3D"object"&&!b.isFunction(G))G=3D{};if(Q=3D=3D=3DK){G=3Dthis;--K}fo=
r(;K<Q;K++)if((j=3Darguments[K])!=3Dnull)for(s in =
j){v=3DG[s];z=3Dj[s];if(G!=3D=3Dz)if(ga&&z&&(b.isPlainObject(z)||(H=3Db.i=
sArray(z)))){if(H){H=3Dfalse;v=3Dv&&b.isArray(v)?v:[]}else =
v=3Dv&&b.isPlainObject(v)?v:{};G[s]=3Db.extend(ga,v,z)}else =
if(z!=3D=3DB)G[s]=3Dz}return =
G};b.extend({noConflict:function(j){E.$=3De;if(j)E.jQuery=3Dd;return =
b},isReady:false,readyWait:1,ready:function(j){j=3D=3D=3Dtrue&&b.readyWai=
t--;=0A=
if(!b.readyWait||j!=3D=3Dtrue&&!b.isReady){if(!t.body)return =
setTimeout(b.ready,1);b.isReady=3Dtrue;if(!(j!=3D=3Dtrue&&--b.readyWait>0=
))if(q){var =
s=3D0,v=3Dq;for(q=3Dnull;j=3Dv[s++];)j.call(t,b);b.fn.trigger&&b(t).trigg=
er("ready").unbind("ready")}}},bindReady:function(){if(!p){p=3Dtrue;if(t.=
readyState=3D=3D=3D"complete")return =
setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMConte=
ntLoaded",u,false);E.addEventListener("load",b.ready,false)}else =
if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("on=
load",=0A=
b.ready);var =
j=3Dfalse;try{j=3DE.frameElement=3D=3Dnull}catch(s){}t.documentElement.do=
Scroll&&j&&a()}}},isFunction:function(j){return =
b.type(j)=3D=3D=3D"function"},isArray:Array.isArray||function(j){return =
b.type(j)=3D=3D=3D"array"},isWindow:function(j){return j&&typeof =
j=3D=3D=3D"object"&&"setInterval"in j},isNaN:function(j){return =
j=3D=3Dnull||!r.test(j)||isNaN(j)},type:function(j){return =
j=3D=3Dnull?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){i=
f(!j||b.type(j)!=3D=3D"object"||j.nodeType||b.isWindow(j))return =
false;if(j.constructor&&=0A=
!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"=
))return false;for(var s in j);return =
s=3D=3D=3DB||F.call(j,s)},isEmptyObject:function(j){for(var s in =
j)return false;return true},error:function(j){throw =
j;},parseJSON:function(j){if(typeof j!=3D=3D"string"||!j)return =
null;j=3Db.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,""=
)))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return =
"+j))();else b.error("Invalid JSON: =
"+j)},noop:function(){},globalEval:function(j){if(j&&=0A=
l.test(j)){var =
s=3Dt.getElementsByTagName("head")[0]||t.documentElement,v=3Dt.createElem=
ent("script");v.type=3D"text/javascript";if(b.support.scriptEval)v.append=
Child(t.createTextNode(j));else =
v.text=3Dj;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:fun=
ction(j,s){return =
j.nodeName&&j.nodeName.toUpperCase()=3D=3D=3Ds.toUpperCase()},each:functi=
on(j,s,v){var =
z,H=3D0,G=3Dj.length,K=3DG=3D=3D=3DB||b.isFunction(j);if(v)if(K)for(z in =
j){if(s.apply(j[z],v)=3D=3D=3Dfalse)break}else =
for(;H<G;){if(s.apply(j[H++],v)=3D=3D=3Dfalse)break}else if(K)for(z in =
j){if(s.call(j[z],=0A=
z,j[z])=3D=3D=3Dfalse)break}else =
for(v=3Dj[0];H<G&&s.call(v,H,v)!=3D=3Dfalse;v=3Dj[++H]);return =
j},trim:O?function(j){return =
j=3D=3Dnull?"":O.call(j)}:function(j){return =
j=3D=3Dnull?"":j.toString().replace(k,"").replace(o,"")},makeArray:functi=
on(j,s){var v=3Ds||[];if(j!=3Dnull){var =
z=3Db.type(j);j.length=3D=3Dnull||z=3D=3D=3D"string"||z=3D=3D=3D"function=
"||z=3D=3D=3D"regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return =
v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var =
v=3D0,z=3Ds.length;v<z;v++)if(s[v]=3D=3D=3Dj)return =
v;return-1},merge:function(j,=0A=
s){var v=3Dj.length,z=3D0;if(typeof s.length=3D=3D=3D"number")for(var =
H=3Ds.length;z<H;z++)j[v++]=3Ds[z];else =
for(;s[z]!=3D=3DB;)j[v++]=3Ds[z++];j.length=3Dv;return =
j},grep:function(j,s,v){var z=3D[],H;v=3D!!v;for(var =
G=3D0,K=3Dj.length;G<K;G++){H=3D!!s(j[G],G);v!=3D=3DH&&z.push(j[G])}retur=
n z},map:function(j,s,v){for(var =
z=3D[],H,G=3D0,K=3Dj.length;G<K;G++){H=3Ds(j[G],G,v);if(H!=3Dnull)z[z.len=
gth]=3DH}return =
z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length=3D=
=3D=3D2)if(typeof s=3D=3D=3D"string"){v=3Dj;j=3Dv[s];s=3DB}else =
if(s&&!b.isFunction(s)){v=3D=0A=
s;s=3DB}if(!s&&j)s=3Dfunction(){return =
j.apply(v||this,arguments)};if(j)s.guid=3Dj.guid=3Dj.guid||s.guid||b.guid=
++;return s},access:function(j,s,v,z,H,G){var K=3Dj.length;if(typeof =
s=3D=3D=3D"object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return =
j}if(v!=3D=3DB){z=3D!G&&z&&b.isFunction(v);for(Q=3D0;Q<K;Q++)H(j[Q],s,z?v=
.call(j[Q],Q,H(j[Q],s)):v,G);return j}return =
K?H(j[0],s):B},now:function(){return(new =
Date).getTime()},uaMatch:function(j){j=3Dj.toLowerCase();j=3DL.exec(j)||g=
.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||=0A=
[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boole=
an Number String Function Array Date RegExp Object".split(" =
"),function(j,s){R["[object =
"+s+"]"]=3Ds.toLowerCase()});m=3Db.uaMatch(m);if(m.browser){b.browser[m.b=
rowser]=3Dtrue;b.browser.version=3Dm.version}if(b.browser.webkit)b.browse=
r.safari=3Dtrue;if(D)b.inArray=3Dfunction(j,s){return =
D.call(s,j)};if(!/\s/.test("\u00a0")){k=3D/^[\s\xA0]+/;o=3D/[\s\xA0]+$/}f=
=3Db(t);if(t.addEventListener)u=3Dfunction(){t.removeEventListener("DOMCo=
ntentLoaded",u,=0A=
false);b.ready()};else =
if(t.attachEvent)u=3Dfunction(){if(t.readyState=3D=3D=3D"complete"){t.det=
achEvent("onreadystatechange",u);b.ready()}};return =
E.jQuery=3DE.$=3Db}();(function(){c.support=3D{};var =
a=3Dt.documentElement,b=3Dt.createElement("script"),d=3Dt.createElement("=
div"),e=3D"script"+c.now();d.style.display=3D"none";d.innerHTML=3D"   =
<link/><table></table><a href=3D'/a' =
style=3D'color:red;float:left;opacity:.55;'>a</a><input =
type=3D'checkbox'/>";var =
f=3Dd.getElementsByTagName("*"),h=3Dd.getElementsByTagName("a")[0],l=3Dt.=
createElement("select"),=0A=
k=3Dl.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.s=
upport=3D{leadingWhitespace:d.firstChild.nodeType=3D=3D=3D3,tbody:!d.getE=
lementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("=
link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.=
getAttribute("href")=3D=3D=3D"/a",opacity:/^0.55$/.test(h.style.opacity),=
cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].va=
lue=3D=3D=3D"on",optSelected:k.selected,deleteExpando:true,optDisabled:fa=
lse,checkClone:false,=0A=
scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:f=
alse,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=3Dtrue=
;c.support.optDisabled=3D!k.disabled;b.type=3D"text/javascript";try{b.app=
endChild(t.createTextNode("window."+e+"=3D1;"))}catch(o){}a.insertBefore(=
b,a.firstChild);if(E[e]){c.support.scriptEval=3Dtrue;delete =
E[e]}try{delete =
b.test}catch(x){c.support.deleteExpando=3Dfalse}a.removeChild(b);if(d.att=
achEvent&&d.fireEvent){d.attachEvent("onclick",function =
r(){c.support.noCloneEvent=3D=0A=
false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")=
}d=3Dt.createElement("div");d.innerHTML=3D"<input type=3D'radio' =
name=3D'radiotest' =
checked=3D'checked'/>";a=3Dt.createDocumentFragment();a.appendChild(d.fir=
stChild);c.support.checkClone=3Da.cloneNode(true).cloneNode(true).lastChi=
ld.checked;c(function(){var =
r=3Dt.createElement("div");r.style.width=3Dr.style.paddingLeft=3D"1px";t.=
body.appendChild(r);c.boxModel=3Dc.support.boxModel=3Dr.offsetWidth=3D=3D=
=3D2;if("zoom"in r.style){r.style.display=3D"inline";r.style.zoom=3D=0A=
1;c.support.inlineBlockNeedsLayout=3Dr.offsetWidth=3D=3D=3D2;r.style.disp=
lay=3D"";r.innerHTML=3D"<div =
style=3D'width:4px;'></div>";c.support.shrinkWrapBlocks=3Dr.offsetWidth!=3D=
=3D2}r.innerHTML=3D"<table><tr><td =
style=3D'padding:0;display:none'></td><td>t</td></tr></table>";var =
A=3Dr.getElementsByTagName("td");c.support.reliableHiddenOffsets=3DA[0].o=
ffsetHeight=3D=3D=3D0;A[0].style.display=3D"";A[1].style.display=3D"none"=
;c.support.reliableHiddenOffsets=3Dc.support.reliableHiddenOffsets&&A[0].=
offsetHeight=3D=3D=3D0;r.innerHTML=3D"";t.body.removeChild(r).style.displ=
ay=3D=0A=
"none"});a=3Dfunction(r){var A=3Dt.createElement("div");r=3D"on"+r;var =
C=3Dr in A;if(!C){A.setAttribute(r,"return;");C=3Dtypeof =
A[r]=3D=3D=3D"function"}return =
C};c.support.submitBubbles=3Da("submit");c.support.changeBubbles=3Da("cha=
nge");a=3Db=3Dd=3Df=3Dh=3Dnull}})();var =
ra=3D{},Ja=3D/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQu=
ery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444=
553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=3Da=3D=
=3DE?ra:a;var e=3Da.nodeType,f=3De?a[c.expando]:null,h=3D=0A=
c.cache;if(!(e&&!f&&typeof =
b=3D=3D=3D"string"&&d=3D=3D=3DB)){if(e)f||(a[c.expando]=3Df=3D++c.uuid);e=
lse h=3Da;if(typeof b=3D=3D=3D"object")if(e)h[f]=3Dc.extend(h[f],b);else =
c.extend(h,b);else =
if(e&&!h[f])h[f]=3D{};a=3De?h[f]:h;if(d!=3D=3DB)a[b]=3Dd;return typeof =
b=3D=3D=3D"string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a))=
{a=3Da=3D=3DE?ra:a;var =
d=3Da.nodeType,e=3Dd?a[c.expando]:a,f=3Dc.cache,h=3Dd?f[e]:e;if(b){if(h){=
delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else =
if(d&&c.support.deleteExpando)delete a[c.expando];else =
if(a.removeAttribute)a.removeAttribute(c.expando);=0A=
else if(d)delete f[e];else for(var l in a)delete =
a[l]}},acceptData:function(a){if(a.nodeName){var =
b=3Dc.noData[a.nodeName.toLowerCase()];if(b)return!(b=3D=3D=3Dtrue||a.get=
Attribute("classid")!=3D=3Db)}return =
true}});c.fn.extend({data:function(a,b){var d=3Dnull;if(typeof =
a=3D=3D=3D"undefined"){if(this.length){var =
e=3Dthis[0].attributes,f;d=3Dc.data(this[0]);for(var =
h=3D0,l=3De.length;h<l;h++){f=3De[h].name;if(f.indexOf("data-")=3D=3D=3D0=
){f=3Df.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof =
a=3D=3D=3D"object")return this.each(function(){c.data(this,=0A=
a)});var =
k=3Da.split(".");k[1]=3Dk[1]?"."+k[1]:"";if(b=3D=3D=3DB){d=3Dthis.trigger=
Handler("getData"+k[1]+"!",[k[0]]);if(d=3D=3D=3DB&&this.length){d=3Dc.dat=
a(this[0],a);d=3Dka(this[0],a,d)}return =
d=3D=3D=3DB&&k[1]?this.data(k[0]):d}else return this.each(function(){var =
o=3Dc(this),x=3D[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(th=
is,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(=
a){return =
this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a=
,b,d){if(a){b=3D(b||"fx")+"queue";var e=3D=0A=
c.data(a,b);if(!d)return =
e||[];if(!e||c.isArray(d))e=3Dc.data(a,b,c.makeArray(d));else =
e.push(d);return e}},dequeue:function(a,b){b=3Db||"fx";var =
d=3Dc.queue(a,b),e=3Dd.shift();if(e=3D=3D=3D"inprogress")e=3Dd.shift();if=
(e){b=3D=3D=3D"fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue=
(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof =
a!=3D=3D"string"){b=3Da;a=3D"fx"}if(b=3D=3D=3DB)return =
c.queue(this[0],a);return this.each(function(){var =
d=3Dc.queue(this,a,b);a=3D=3D=3D"fx"&&d[0]!=3D=3D"inprogress"&&c.dequeue(=
this,a)})},dequeue:function(a){return =
this.each(function(){c.dequeue(this,=0A=
a)})},delay:function(a,b){a=3Dc.fx?c.fx.speeds[a]||a:a;b=3Db||"fx";return=
 this.queue(b,function(){var =
d=3Dthis;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(=
a){return this.queue(a||"fx",[])}});var =
sa=3D/[\n\t]/g,ha=3D/\s+/,Sa=3D/\r/g,Ta=3D/^(?:href|src|style)$/,Ua=3D/^(=
?:button|input)$/i,Va=3D/^(?:button|input|object|select|textarea)$/i,Wa=3D=
/^a(?:rea)?$/i,ta=3D/^(?:radio|checkbox)$/i;c.props=3D{"for":"htmlFor","c=
lass":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"=
cellSpacing",rowspan:"rowSpan",=0A=
colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameB=
order"};c.fn.extend({attr:function(a,b){return =
c.access(this,a,b,true,c.attr)},removeAttr:function(a){return =
this.each(function(){c.attr(this,a,"");this.nodeType=3D=3D=3D1&&this.remo=
veAttribute(a)})},addClass:function(a){if(c.isFunction(a))return =
this.each(function(x){var =
r=3Dc(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof =
a=3D=3D=3D"string")for(var =
b=3D(a||"").split(ha),d=3D0,e=3Dthis.length;d<e;d++){var =
f=3Dthis[d];if(f.nodeType=3D=3D=3D=0A=
1)if(f.className){for(var h=3D" "+f.className+" =
",l=3Df.className,k=3D0,o=3Db.length;k<o;k++)if(h.indexOf(" "+b[k]+" =
")<0)l+=3D" "+b[k];f.className=3Dc.trim(l)}else f.className=3Da}return =
this},removeClass:function(a){if(c.isFunction(a))return =
this.each(function(o){var =
x=3Dc(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof =
a=3D=3D=3D"string"||a=3D=3D=3DB)for(var =
b=3D(a||"").split(ha),d=3D0,e=3Dthis.length;d<e;d++){var =
f=3Dthis[d];if(f.nodeType=3D=3D=3D1&&f.className)if(a){for(var h=3D(" =
"+f.className+" ").replace(sa," "),=0A=
l=3D0,k=3Db.length;l<k;l++)h=3Dh.replace(" "+b[l]+" "," =
");f.className=3Dc.trim(h)}else f.className=3D""}return =
this},toggleClass:function(a,b){var d=3Dtypeof a,e=3Dtypeof =
b=3D=3D=3D"boolean";if(c.isFunction(a))return this.each(function(f){var =
h=3Dc(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return =
this.each(function(){if(d=3D=3D=3D"string")for(var =
f,h=3D0,l=3Dc(this),k=3Db,o=3Da.split(ha);f=3Do[h++];){k=3De?k:!l.hasClas=
s(f);l[k?"addClass":"removeClass"](f)}else =
if(d=3D=3D=3D"undefined"||d=3D=3D=3D"boolean"){this.className&&c.data(thi=
s,=0A=
"__className__",this.className);this.className=3Dthis.className||a=3D=3D=3D=
false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=3D" =
"+a+" ";for(var b=3D0,d=3Dthis.length;b<d;b++)if((" =
"+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return =
true;return false},val:function(a){if(!arguments.length){var =
b=3Dthis[0];if(b){if(c.nodeName(b,"option")){var =
d=3Db.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName=
(b,"select")){var e=3Db.selectedIndex;d=3D[];var =
f=3Db.options;b=3Db.type=3D=3D=3D"select-one";=0A=
if(e<0)return null;var h=3Db?e:0;for(e=3Db?e+1:f.length;h<e;h++){var =
l=3Df[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute=
("disabled")=3D=3D=3Dnull)&&(!l.parentNode.disabled||!c.nodeName(l.parent=
Node,"optgroup"))){a=3Dc(l).val();if(b)return a;d.push(a)}}return =
d}if(ta.test(b.type)&&!c.support.checkOn)return =
b.getAttribute("value")=3D=3D=3Dnull?"on":b.value;return(b.value||"").rep=
lace(Sa,"")}return B}var k=3Dc.isFunction(a);return =
this.each(function(o){var =
x=3Dc(this),r=3Da;if(this.nodeType=3D=3D=3D1){if(k)r=3D=0A=
a.call(this,o,x.val());if(r=3D=3Dnull)r=3D"";else if(typeof =
r=3D=3D=3D"number")r+=3D"";else =
if(c.isArray(r))r=3Dc.map(r,function(C){return =
C=3D=3Dnull?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=3D=
c.inArray(x.val(),r)>=3D0;else if(c.nodeName(this,"select")){var =
A=3Dc.makeArray(r);c("option",this).each(function(){this.selected=3Dc.inA=
rray(c(this).val(),A)>=3D0});if(!A.length)this.selectedIndex=3D-1}else =
this.value=3Dr}})}});c.extend({attrFn:{val:true,css:true,html:true,text:t=
rue,data:true,width:true,height:true,offset:true},=0A=
attr:function(a,b,d,e){if(!a||a.nodeType=3D=3D=3D3||a.nodeType=3D=3D=3D8)=
return B;if(e&&b in c.attrFn)return =
c(a)[b](d);e=3Da.nodeType!=3D=3D1||!c.isXMLDoc(a);var =
f=3Dd!=3D=3DB;b=3De&&c.props[b]||b;var h=3DTa.test(b);if((b in =
a||a[b]!=3D=3DB)&&e&&!h){if(f){b=3D=3D=3D"type"&&Ua.test(a.nodeName)&&a.p=
arentNode&&c.error("type property can't be =
changed");if(d=3D=3D=3Dnull)a.nodeType=3D=3D=3D1&&a.removeAttribute(b);el=
se a[b]=3Dd}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return =
a.getAttributeNode(b).nodeValue;if(b=3D=3D=3D"tabIndex")return(b=3Da.getA=
ttributeNode("tabIndex"))&&=0A=
b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;=
return =
a[b]}if(!c.support.style&&e&&b=3D=3D=3D"style"){if(f)a.style.cssText=3D""=
+d;return =
a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttri=
bute&&!a.hasAttribute(b))return =
B;a=3D!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(=
b);return a=3D=3D=3Dnull?B:a}});var =
X=3D/\.(.*)$/,ia=3D/^(?:textarea|input|select)$/i,La=3D/\./g,Ma=3D/ =
/g,Xa=3D/[^\w\s.|`]/g,Ya=3Dfunction(a){return =
a.replace(Xa,"\\$&")},ua=3D{focusin:0,focusout:0};=0A=
c.event=3D{add:function(a,b,d,e){if(!(a.nodeType=3D=3D=3D3||a.nodeType=3D=
=3D=3D8)){if(c.isWindow(a)&&a!=3D=3DE&&!a.frameElement)a=3DE;if(d=3D=3D=3D=
false)d=3DU;else if(!d)return;var =
f,h;if(d.handler){f=3Dd;d=3Df.handler}if(!d.guid)d.guid=3Dc.guid++;if(h=3D=
c.data(a)){var =
l=3Da.nodeType?"events":"__events__",k=3Dh[l],o=3Dh.handle;if(typeof =
k=3D=3D=3D"function"){o=3Dk.handle;k=3Dk.events}else =
if(!k){a.nodeType||(h[l]=3Dh=3Dfunction(){});h.events=3Dk=3D{}}if(!o)h.ha=
ndle=3Do=3Dfunction(){return typeof =
c!=3D=3D"undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,=0A=
arguments):B};o.elem=3Da;b=3Db.split(" ");for(var =
x=3D0,r;l=3Db[x++];){h=3Df?c.extend({},f):{handler:d,data:e};if(l.indexOf=
(".")>-1){r=3Dl.split(".");l=3Dr.shift();h.namespace=3Dr.slice(0).sort().=
join(".")}else{r=3D[];h.namespace=3D""}h.type=3Dl;if(!h.guid)h.guid=3Dd.g=
uid;var =
A=3Dk[l],C=3Dc.event.special[l]||{};if(!A){A=3Dk[l]=3D[];if(!C.setup||C.s=
etup.call(a,e,r,o)=3D=3D=3Dfalse)if(a.addEventListener)a.addEventListener=
(l,o,false);else =
a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.ha=
ndler.guid)h.handler.guid=3D=0A=
d.guid}A.push(h);c.event.global[l]=3Dtrue}a=3Dnull}}},global:{},remove:fu=
nction(a,b,d,e){if(!(a.nodeType=3D=3D=3D3||a.nodeType=3D=3D=3D8)){if(d=3D=
=3D=3Dfalse)d=3DU;var =
f,h,l=3D0,k,o,x,r,A,C,J=3Da.nodeType?"events":"__events__",w=3Dc.data(a),=
I=3Dw&&w[J];if(w&&I){if(typeof =
I=3D=3D=3D"function"){w=3DI;I=3DI.events}if(b&&b.type){d=3Db.handler;b=3D=
b.type}if(!b||typeof =
b=3D=3D=3D"string"&&b.charAt(0)=3D=3D=3D"."){b=3Db||"";for(f in =
I)c.event.remove(a,f+b)}else{for(b=3Db.split(" =
");f=3Db[l++];){r=3Df;k=3Df.indexOf(".")<0;o=3D[];if(!k){o=3Df.split(".")=
;f=3Do.shift();x=3DRegExp("(^|\\.)"+=0A=
c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=3DI[f])=
if(d){r=3Dc.event.special[f]||{};for(h=3De||0;h<A.length;h++){C=3DA[h];if=
(d.guid=3D=3D=3DC.guid){if(k||x.test(C.namespace)){e=3D=3Dnull&&A.splice(=
h--,1);r.remove&&r.remove.call(a,C)}if(e!=3Dnull)break}}if(A.length=3D=3D=
=3D0||e!=3Dnull&&A.length=3D=3D=3D1){if(!r.teardown||r.teardown.call(a,o)=
=3D=3D=3Dfalse)c.removeEvent(a,f,w.handle);delete I[f]}}else =
for(h=3D0;h<A.length;h++){C=3DA[h];if(k||x.test(C.namespace)){c.event.rem=
ove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=3D=0A=
w.handle)b.elem=3Dnull;delete w.events;delete w.handle;if(typeof =
w=3D=3D=3D"function")c.removeData(a,J);else =
c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var =
f=3Da.type||a;if(!e){a=3Dtypeof =
a=3D=3D=3D"object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.=
indexOf("!")>=3D0){a.type=3Df=3Df.slice(0,-1);a.exclusive=3Dtrue}if(!d){a=
.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.even=
ts&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.node=
Type=3D=3D=3D3||d.nodeType=3D=3D=3D=0A=
8)return =
B;a.result=3DB;a.target=3Dd;b=3Dc.makeArray(b);b.unshift(a)}a.currentTarg=
et=3Dd;(e=3Dd.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).ha=
ndle)&&e.apply(d,b);e=3Dd.parentNode||d.ownerDocument;try{if(!(d&&d.nodeN=
ame&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,=
b)=3D=3D=3Dfalse){a.result=3Dfalse;a.preventDefault()}}catch(h){}if(!a.is=
PropagationStopped()&&e)c.event.trigger(a,b,e,true);else =
if(!a.isDefaultPrevented()){var l;e=3Da.target;var =
k=3Df.replace(X,""),o=3Dc.nodeName(e,"a")&&k=3D=3D=3D=0A=
"click",x=3Dc.event.special[k]||{};if((!x._default||x._default.call(d,a)=3D=
=3D=3Dfalse)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){t=
ry{if(e[k]){if(l=3De["on"+k])e["on"+k]=3Dnull;c.event.triggered=3Dtrue;e[=
k]()}}catch(r){}if(l)e["on"+k]=3Dl;c.event.triggered=3Dfalse}}},handle:fu=
nction(a){var b,d,e,f;d=3D[];var =
h=3Dc.makeArray(arguments);a=3Dh[0]=3Dc.event.fix(a||E.event);a.currentTa=
rget=3Dthis;b=3Da.type.indexOf(".")<0&&!a.exclusive;if(!b){e=3Da.type.spl=
it(".");a.type=3De.shift();d=3De.slice(0).sort();e=3DRegExp("(^|\\.)"+=0A=
d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=3Da.namespace||d.join(".")=
;f=3Dc.data(this,this.nodeType?"events":"__events__");if(typeof =
f=3D=3D=3D"function")f=3Df.events;d=3D(f||{})[a.type];if(f&&d){d=3Dd.slic=
e(0);f=3D0;for(var l=3Dd.length;f<l;f++){var =
k=3Dd[f];if(b||e.test(k.namespace)){a.handler=3Dk.handler;a.data=3Dk.data=
;a.handleObj=3Dk;k=3Dk.handler.apply(this,h);if(k!=3D=3DB){a.result=3Dk;i=
f(k=3D=3D=3Dfalse){a.preventDefault();a.stopPropagation()}}if(a.isImmedia=
tePropagationStopped())break}}}return a.result},props:"altKey attrChange =
attrName bubbles button cancelable charCode clientX clientY ctrlKey =
currentTarget data detail eventPhase fromElement handler keyCode layerX =
layerY metaKey newValue offsetX offsetY pageX pageY prevValue =
relatedNode relatedTarget screenX screenY shiftKey srcElement target =
toElement view wheelDelta which".split(" "),=0A=
fix:function(a){if(a[c.expando])return a;var =
b=3Da;a=3Dc.Event(b);for(var =
d=3Dthis.props.length,e;d;){e=3Dthis.props[--d];a[e]=3Db[e]}if(!a.target)=
a.target=3Da.srcElement||t;if(a.target.nodeType=3D=3D=3D3)a.target=3Da.ta=
rget.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=3Da.fr=
omElement=3D=3D=3Da.target?a.toElement:a.fromElement;if(a.pageX=3D=3Dnull=
&&a.clientX!=3Dnull){b=3Dt.documentElement;d=3Dt.body;a.pageX=3Da.clientX=
+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft|=
|0);a.pageY=3Da.clientY+(b&&b.scrollTop||=0A=
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which=3D=3Dnu=
ll&&(a.charCode!=3Dnull||a.keyCode!=3Dnull))a.which=3Da.charCode!=3Dnull?=
a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=3Da.ctrlKey;if(!a=
.which&&a.button!=3D=3DB)a.which=3Da.button&1?1:a.button&2?3:a.button&4?2=
:0;return =
a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.no=
op},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.ext=
end({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.r=
emove(this,=0A=
Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.is=
Window(this))this.onbeforeunload=3Dd},teardown:function(a,b){if(this.onbe=
foreunload=3D=3D=3Db)this.onbeforeunload=3Dnull}}}};c.removeEvent=3Dt.rem=
oveEventListener?function(a,b,d){a.removeEventListener&&a.removeEventList=
ener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};=
c.Event=3Dfunction(a){if(!this.preventDefault)return new =
c.Event(a);if(a&&a.type){this.originalEvent=3Da;this.type=3Da.type}else =
this.type=3Da;this.timeStamp=3D=0A=
c.now();this[c.expando]=3Dtrue};c.Event.prototype=3D{preventDefault:funct=
ion(){this.isDefaultPrevented=3Dca;var =
a=3Dthis.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else =
a.returnValue=3Dfalse},stopPropagation:function(){this.isPropagationStopp=
ed=3Dca;var =
a=3Dthis.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.can=
celBubble=3Dtrue}},stopImmediatePropagation:function(){this.isImmediatePr=
opagationStopped=3Dca;this.stopPropagation()},isDefaultPrevented:U,isProp=
agationStopped:U,isImmediatePropagationStopped:U};=0A=
var va=3Dfunction(a){var =
b=3Da.relatedTarget;try{for(;b&&b!=3D=3Dthis;)b=3Db.parentNode;if(b!=3D=3D=
this){a.type=3Da.data;c.event.handle.apply(this,arguments)}}catch(d){}},w=
a=3Dfunction(a){a.type=3Da.data;c.event.handle.apply(this,arguments)};c.e=
ach({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.=
special[a]=3D{setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)=
},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(=
!c.support.submitBubbles)c.event.special.submit=3D{setup:function(){if(th=
is.nodeName.toLowerCase()!=3D=3D=0A=
"form"){c.event.add(this,"click.specialSubmit",function(a){var =
b=3Da.target,d=3Db.type;if((d=3D=3D=3D"submit"||d=3D=3D=3D"image")&&c(b).=
closest("form").length){a.liveFired=3DB;return =
la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",=
function(a){var =
b=3Da.target,d=3Db.type;if((d=3D=3D=3D"text"||d=3D=3D=3D"password")&&c(b)=
.closest("form").length&&a.keyCode=3D=3D=3D13){a.liveFired=3DB;return =
la("submit",this,arguments)}})}else return =
false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.=
support.changeBubbles){var V,=0A=
xa=3Dfunction(a){var =
b=3Da.type,d=3Da.value;if(b=3D=3D=3D"radio"||b=3D=3D=3D"checkbox")d=3Da.c=
hecked;else =
if(b=3D=3D=3D"select-multiple")d=3Da.selectedIndex>-1?c.map(a.options,fun=
ction(e){return e.selected}).join("-"):"";else =
if(a.nodeName.toLowerCase()=3D=3D=3D"select")d=3Da.selectedIndex;return =
d},Z=3Dfunction(a,b){var =
d=3Da.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=3Dc.data(d,"_c=
hange_data");f=3Dxa(d);if(a.type!=3D=3D"focusout"||d.type!=3D=3D"radio")c=
.data(d,"_change_data",f);if(!(e=3D=3D=3DB||f=3D=3D=3De))if(e!=3Dnull||f)=
{a.type=3D"change";a.liveFired=3D=0A=
B;return =
c.event.trigger(a,b,d)}}};c.event.special.change=3D{filters:{focusout:Z,b=
eforedeactivate:Z,click:function(a){var =
b=3Da.target,d=3Db.type;if(d=3D=3D=3D"radio"||d=3D=3D=3D"checkbox"||b.nod=
eName.toLowerCase()=3D=3D=3D"select")return =
Z.call(this,a)},keydown:function(a){var =
b=3Da.target,d=3Db.type;if(a.keyCode=3D=3D=3D13&&b.nodeName.toLowerCase()=
!=3D=3D"textarea"||a.keyCode=3D=3D=3D32&&(d=3D=3D=3D"checkbox"||d=3D=3D=3D=
"radio")||d=3D=3D=3D"select-multiple")return =
Z.call(this,a)},beforeactivate:function(a){a=3Da.target;c.data(a,"_change=
_data",xa(a))}},setup:function(){if(this.type=3D=3D=3D=0A=
"file")return false;for(var a in =
V)c.event.add(this,a+".specialChange",V[a]);return =
ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".special=
Change");return =
ia.test(this.nodeName)}};V=3Dc.event.special.change.filters;V.focus=3DV.b=
eforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"=
},function(a,b){function d(e){e=3Dc.event.fix(e);e.type=3Db;return =
c.event.trigger(e,null,e.target)}c.event.special[b]=3D{setup:function(){u=
a[b]++=3D=3D=3D0&&t.addEventListener(a,d,true)},teardown:function(){--ua[=
b]=3D=3D=3D=0A=
0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b=
){c.fn[b]=3Dfunction(d,e,f){if(typeof d=3D=3D=3D"object"){for(var h in =
d)this[b](h,e,d[h],f);return =
this}if(c.isFunction(e)||e=3D=3D=3Dfalse){f=3De;e=3DB}var =
l=3Db=3D=3D=3D"one"?c.proxy(f,function(o){c(this).unbind(o,l);return =
f.apply(this,arguments)}):f;if(d=3D=3D=3D"unload"&&b!=3D=3D"one")this.one=
(d,e,f);else{h=3D0;for(var =
k=3Dthis.length;h<k;h++)c.event.add(this[h],d,l,e)}return =
this}});c.fn.extend({unbind:function(a,b){if(typeof =
a=3D=3D=3D"object"&&!a.preventDefault)for(var d in a)this.unbind(d,=0A=
a[d]);else{d=3D0;for(var =
e=3Dthis.length;d<e;d++)c.event.remove(this[d],a,b)}return =
this},delegate:function(a,b,d,e){return =
this.live(b,d,e,a)},undelegate:function(a,b,d){return =
arguments.length=3D=3D=3D0?this.unbind("live"):this.die(b,null,d,a)},trig=
ger:function(a,b){return =
this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function=
(a,b){if(this[0]){var =
d=3Dc.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b=
,this[0]);return d.result}},toggle:function(a){for(var b=3Darguments,d=3D=0A=
1;d<b.length;)c.proxy(a,b[d++]);return =
this.click(c.proxy(a,function(e){var =
f=3D(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.gu=
id,f+1);e.preventDefault();return =
b[f].apply(this,arguments)||false}))},hover:function(a,b){return =
this.mouseenter(a).mouseleave(b||a)}});var =
ya=3D{focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"=
mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=3Dfunction(d,e,f,h=
){var =
l,k=3D0,o,x,r=3Dh||this.selector;h=3Dh?this:c(this.context);if(typeof =
d=3D=3D=3D=0A=
"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return =
this}if(c.isFunction(e)){f=3De;e=3DB}for(d=3D(d||"").split(" =
");(l=3Dd[k++])!=3Dnull;){o=3DX.exec(l);x=3D"";if(o){x=3Do[0];l=3Dl.repla=
ce(X,"")}if(l=3D=3D=3D"hover")d.push("mouseenter"+x,"mouseleave"+x);else{=
o=3Dl;if(l=3D=3D=3D"focus"||l=3D=3D=3D"blur"){d.push(ya[l]+x);l+=3Dx}else=
 l=3D(ya[l]||l)+x;if(b=3D=3D=3D"live"){x=3D0;for(var =
A=3Dh.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,h=
andler:f,origType:l,origHandler:f,preType:o})}else =
h.unbind("live."+Y(l,r),f)}}return this}});=0A=
c.each("blur focus focusin focusout load resize scroll unload click =
dblclick mousedown mouseup mousemove mouseover mouseout mouseenter =
mouseleave change select submit keydown keypress keyup error".split(" =
"),function(a,b){c.fn[b]=3Dfunction(d,e){if(e=3D=3Dnull){e=3Dd;d=3Dnull}r=
eturn =
arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn=
[b]=3Dtrue});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",funct=
ion(){for(var a in =
c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}c=
atch(b){}});=0A=
(function(){function a(g,i,n,m,p,q){p=3D0;for(var =
u=3Dm.length;p<u;p++){var y=3Dm[p];if(y){var =
F=3Dfalse;for(y=3Dy[g];y;){if(y.sizcache=3D=3D=3Dn){F=3Dm[y.sizset];break=
}if(y.nodeType=3D=3D=3D1&&!q){y.sizcache=3Dn;y.sizset=3Dp}if(y.nodeName.t=
oLowerCase()=3D=3D=3Di){F=3Dy;break}y=3Dy[g]}m[p]=3DF}}}function =
b(g,i,n,m,p,q){p=3D0;for(var u=3Dm.length;p<u;p++){var =
y=3Dm[p];if(y){var =
F=3Dfalse;for(y=3Dy[g];y;){if(y.sizcache=3D=3D=3Dn){F=3Dm[y.sizset];break=
}if(y.nodeType=3D=3D=3D1){if(!q){y.sizcache=3Dn;y.sizset=3Dp}if(typeof =
i!=3D=3D"string"){if(y=3D=3D=3Di){F=3Dtrue;break}}else if(k.filter(i,=0A=
[y]).length>0){F=3Dy;break}}y=3Dy[g]}m[p]=3DF}}}var =
d=3D/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[=
\]'"]+)+\]|\\.|[^ =
>+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=3D0,f=3DObject.prototype=
.toString,h=3Dfalse,l=3Dtrue;[0,0].sort(function(){l=3Dfalse;return =
0});var k=3Dfunction(g,i,n,m){n=3Dn||[];var =
p=3Di=3Di||t;if(i.nodeType!=3D=3D1&&i.nodeType!=3D=3D9)return[];if(!g||ty=
peof g!=3D=3D"string")return n;var =
q,u,y,F,M,N=3Dtrue,O=3Dk.isXML(i),D=3D[],R=3Dg;do{d.exec("");if(q=3Dd.exe=
c(R)){R=3Dq[3];D.push(q[1]);if(q[2]){F=3Dq[3];=0A=
break}}}while(q);if(D.length>1&&x.exec(g))if(D.length=3D=3D=3D2&&o.relati=
ve[D[0]])u=3DL(D[0]+D[1],i);else =
for(u=3Do.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=3DD.shift();if(o=
.relative[g])g+=3DD.shift();u=3DL(g,u)}else{if(!m&&D.length>1&&i.nodeType=
=3D=3D=3D9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=
=3Dk.find(D.shift(),i,O);i=3Dq.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if=
(i){q=3Dm?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length=3D=3D=3D1&&(D[0=
]=3D=3D=3D"~"||D[0]=3D=3D=3D"+")&&i.parentNode?i.parentNode:i,O);u=3Dq.ex=
pr?k.filter(q.expr,=0A=
q.set):q.set;if(D.length>0)y=3DC(u);else =
N=3Dfalse;for(;D.length;){q=3DM=3DD.pop();if(o.relative[M])q=3DD.pop();el=
se M=3D"";if(q=3D=3Dnull)q=3Di;o.relative[M](y,q,O)}}else =
y=3D[]}y||(y=3Du);y||k.error(M||g);if(f.call(y)=3D=3D=3D"[object =
Array]")if(N)if(i&&i.nodeType=3D=3D=3D1)for(g=3D0;y[g]!=3Dnull;g++){if(y[=
g]&&(y[g]=3D=3D=3Dtrue||y[g].nodeType=3D=3D=3D1&&k.contains(i,y[g])))n.pu=
sh(u[g])}else =
for(g=3D0;y[g]!=3Dnull;g++)y[g]&&y[g].nodeType=3D=3D=3D1&&n.push(u[g]);el=
se n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return =
n};k.uniqueSort=3Dfunction(g){if(w){h=3D=0A=
l;g.sort(w);if(h)for(var =
i=3D1;i<g.length;i++)g[i]=3D=3D=3Dg[i-1]&&g.splice(i--,1)}return =
g};k.matches=3Dfunction(g,i){return =
k(g,null,null,i)};k.matchesSelector=3Dfunction(g,i){return =
k(i,null,null,[g]).length>0};k.find=3Dfunction(g,i,n){var =
m;if(!g)return[];for(var p=3D0,q=3Do.order.length;p<q;p++){var =
u,y=3Do.order[p];if(u=3Do.leftMatch[y].exec(g)){var =
F=3Du[1];u.splice(1,1);if(F.substr(F.length-1)!=3D=3D"\\"){u[1]=3D(u[1]||=
"").replace(/\\/g,"");m=3Do.find[y](u,i,n);if(m!=3Dnull){g=3Dg.replace(o.=
match[y],"");break}}}}m||(m=3Di.getElementsByTagName("*"));=0A=
return{set:m,expr:g}};k.filter=3Dfunction(g,i,n,m){for(var =
p,q,u=3Dg,y=3D[],F=3Di,M=3Di&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var =
N in o.filter)if((p=3Do.leftMatch[N].exec(g))!=3Dnull&&p[2]){var =
O,D,R=3Do.filter[N];D=3Dp[1];q=3Dfalse;p.splice(1,1);if(D.substr(D.length=
-1)!=3D=3D"\\"){if(F=3D=3D=3Dy)y=3D[];if(o.preFilter[N])if(p=3Do.preFilte=
r[N](p,F,n,y,m,M)){if(p=3D=3D=3Dtrue)continue}else =
q=3DO=3Dtrue;if(p)for(var =
j=3D0;(D=3DF[j])!=3Dnull;j++)if(D){O=3DR(D,p,j,F);var =
s=3Dm^!!O;if(n&&O!=3Dnull)if(s)q=3Dtrue;else F[j]=3Dfalse;else =
if(s){y.push(D);q=3Dtrue}}if(O!=3D=3D=0A=
B){n||(F=3Dy);g=3Dg.replace(o.match[N],"");if(!q)return[];break}}}if(g=3D=
=3D=3Du)if(q=3D=3Dnull)k.error(g);else break;u=3Dg}return =
F};k.error=3Dfunction(g){throw"Syntax error, unrecognized expression: =
"+g;};var =
o=3Dk.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+=
\-]*)\))?/,=0A=
POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=3D[^\-]|$)/,PSEU=
DO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)=
\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrH=
andle:{href:function(g){return =
g.getAttribute("href")}},relative:{"+":function(g,i){var n=3Dtypeof =
i=3D=3D=3D"string",m=3Dn&&!/\W/.test(i);n=3Dn&&!m;if(m)i=3Di.toLowerCase(=
);m=3D0;for(var =
p=3Dg.length,q;m<p;m++)if(q=3Dg[m]){for(;(q=3Dq.previousSibling)&&q.nodeT=
ype!=3D=3D1;);g[m]=3Dn||q&&q.nodeName.toLowerCase()=3D=3D=3D=0A=
i?q||false:q=3D=3D=3Di}n&&k.filter(i,g,true)},">":function(g,i){var =
n,m=3Dtypeof =
i=3D=3D=3D"string",p=3D0,q=3Dg.length;if(m&&!/\W/.test(i))for(i=3Di.toLow=
erCase();p<q;p++){if(n=3Dg[p]){n=3Dn.parentNode;g[p]=3Dn.nodeName.toLower=
Case()=3D=3D=3Di?n:false}}else{for(;p<q;p++)if(n=3Dg[p])g[p]=3Dm?n.parent=
Node:n.parentNode=3D=3D=3Di;m&&k.filter(i,g,true)}},"":function(g,i,n){va=
r m,p=3De++,q=3Db;if(typeof =
i=3D=3D=3D"string"&&!/\W/.test(i)){m=3Di=3Di.toLowerCase();q=3Da}q("paren=
tNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=3De++,q=3Db;if(typeof =
i=3D=3D=3D"string"&&!/\W/.test(i)){m=3D=0A=
i=3Di.toLowerCase();q=3Da}q("previousSibling",i,p,g,m,n)}},find:{ID:funct=
ion(g,i,n){if(typeof =
i.getElementById!=3D=3D"undefined"&&!n)return(g=3Di.getElementById(g[1]))=
&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof =
i.getElementsByName!=3D=3D"undefined"){for(var =
n=3D[],m=3Di.getElementsByName(g[1]),p=3D0,q=3Dm.length;p<q;p++)m[p].getA=
ttribute("name")=3D=3D=3Dg[1]&&n.push(m[p]);return =
n.length=3D=3D=3D0?null:n}},TAG:function(g,i){return =
i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=3D=
" "+g[1].replace(/\\/g,=0A=
"")+" ";if(q)return g;q=3D0;for(var =
u;(u=3Di[q])!=3Dnull;q++)if(u)if(p^(u.className&&(" "+u.className+" =
").replace(/[\t\n]/g," ").indexOf(g)>=3D0))n||m.push(u);else =
if(n)i[q]=3Dfalse;return false},ID:function(g){return =
g[1].replace(/\\/g,"")},TAG:function(g){return =
g[1].toLowerCase()},CHILD:function(g){if(g[1]=3D=3D=3D"nth"){var =
i=3D/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]=3D=3D=3D"even"&&"2n"||g[2]=3D=3D=
=3D"odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=3Di[1]+(i[2]||=
1)-0;g[3]=3Di[3]-0}g[0]=3De++;return g},ATTR:function(g,i,n,=0A=
m,p,q){i=3Dg[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=3Do.attrMap[i]=
;if(g[2]=3D=3D=3D"~=3D")g[4]=3D" "+g[4]+" ";return =
g},PSEUDO:function(g,i,n,m,p){if(g[1]=3D=3D=3D"not")if((d.exec(g[3])||"")=
.length>1||/^\w/.test(g[3]))g[3]=3Dk(g[3],null,null,i);else{g=3Dk.filter(=
g[3],i,n,true^p);n||m.push.apply(m,g);return false}else =
if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return =
g},POS:function(g){g.unshift(true);return =
g}},filters:{enabled:function(g){return =
g.disabled=3D=3D=3Dfalse&&g.type!=3D=3D"hidden"},disabled:function(g){ret=
urn g.disabled=3D=3D=3D=0A=
true},checked:function(g){return =
g.checked=3D=3D=3Dtrue},selected:function(g){return =
g.selected=3D=3D=3Dtrue},parent:function(g){return!!g.firstChild},empty:f=
unction(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).len=
gth},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){r=
eturn"text"=3D=3D=3Dg.type},radio:function(g){return"radio"=3D=3D=3Dg.typ=
e},checkbox:function(g){return"checkbox"=3D=3D=3Dg.type},file:function(g)=
{return"file"=3D=3D=3Dg.type},password:function(g){return"password"=3D=3D=
=3Dg.type},submit:function(g){return"submit"=3D=3D=3D=0A=
g.type},image:function(g){return"image"=3D=3D=3Dg.type},reset:function(g)=
{return"reset"=3D=3D=3Dg.type},button:function(g){return"button"=3D=3D=3D=
g.type||g.nodeName.toLowerCase()=3D=3D=3D"button"},input:function(g){retu=
rn/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:fu=
nction(g,i){return i=3D=3D=3D0},last:function(g,i,n,m){return =
i=3D=3D=3Dm.length-1},even:function(g,i){return =
i%2=3D=3D=3D0},odd:function(g,i){return =
i%2=3D=3D=3D1},lt:function(g,i,n){return =
i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return =
n[3]-=0A=
0=3D=3D=3Di},eq:function(g,i,n){return =
n[3]-0=3D=3D=3Di}},filter:{PSEUDO:function(g,i,n,m){var =
p=3Di[1],q=3Do.filters[p];if(q)return q(g,n,i,m);else =
if(p=3D=3D=3D"contains")return(g.textContent||g.innerText||k.getText([g])=
||"").indexOf(i[3])>=3D0;else =
if(p=3D=3D=3D"not"){i=3Di[3];n=3D0;for(m=3Di.length;n<m;n++)if(i[n]=3D=3D=
=3Dg)return false;return true}else k.error("Syntax error, unrecognized =
expression: "+p)},CHILD:function(g,i){var n=3Di[1],m=3Dg;switch(n){case =
"only":case =
"first":for(;m=3Dm.previousSibling;)if(m.nodeType=3D=3D=3D1)return =
false;if(n=3D=3D=3D=0A=
"first")return true;m=3Dg;case =
"last":for(;m=3Dm.nextSibling;)if(m.nodeType=3D=3D=3D1)return =
false;return true;case "nth":n=3Di[2];var =
p=3Di[3];if(n=3D=3D=3D1&&p=3D=3D=3D0)return true;var =
q=3Di[0],u=3Dg.parentNode;if(u&&(u.sizcache!=3D=3Dq||!g.nodeIndex)){var =
y=3D0;for(m=3Du.firstChild;m;m=3Dm.nextSibling)if(m.nodeType=3D=3D=3D1)m.=
nodeIndex=3D++y;u.sizcache=3Dq}m=3Dg.nodeIndex-p;return =
n=3D=3D=3D0?m=3D=3D=3D0:m%n=3D=3D=3D0&&m/n>=3D0}},ID:function(g,i){return=
 =
g.nodeType=3D=3D=3D1&&g.getAttribute("id")=3D=3D=3Di},TAG:function(g,i){r=
eturn =
i=3D=3D=3D"*"&&g.nodeType=3D=3D=3D1||g.nodeName.toLowerCase()=3D=3D=3D=0A=
i},CLASS:function(g,i){return(" =
"+(g.className||g.getAttribute("class"))+" =
").indexOf(i)>-1},ATTR:function(g,i){var =
n=3Di[1];n=3Do.attrHandle[n]?o.attrHandle[n](g):g[n]!=3Dnull?g[n]:g.getAt=
tribute(n);var m=3Dn+"",p=3Di[2],q=3Di[4];return =
n=3D=3Dnull?p=3D=3D=3D"!=3D":p=3D=3D=3D"=3D"?m=3D=3D=3Dq:p=3D=3D=3D"*=3D"=
?m.indexOf(q)>=3D0:p=3D=3D=3D"~=3D"?(" "+m+" =
").indexOf(q)>=3D0:!q?m&&n!=3D=3Dfalse:p=3D=3D=3D"!=3D"?m!=3D=3Dq:p=3D=3D=
=3D"^=3D"?m.indexOf(q)=3D=3D=3D0:p=3D=3D=3D"$=3D"?m.substr(m.length-q.len=
gth)=3D=3D=3Dq:p=3D=3D=3D"|=3D"?m=3D=3D=3Dq||m.substr(0,q.length+1)=3D=3D=
=3Dq+"-":false},POS:function(g,i,n,m){var p=3Do.setFilters[i[2]];=0A=
if(p)return =
p(g,n,i,m)}}},x=3Do.match.POS,r=3Dfunction(g,i){return"\\"+(i-0+1)},A;for=
(A in =
o.match){o.match[A]=3DRegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/=
.source);o.leftMatch[A]=3DRegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].sou=
rce.replace(/\\(\d+)/g,r))}var =
C=3Dfunction(g,i){g=3DArray.prototype.slice.call(g,0);if(i){i.push.apply(=
i,g);return i}return =
g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J=
){C=3Dfunction(g,i){var n=3D0,m=3Di||[];if(f.call(g)=3D=3D=3D"[object =
Array]")Array.prototype.push.apply(m,=0A=
g);else if(typeof g.length=3D=3D=3D"number")for(var =
p=3Dg.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return =
m}}var =
w,I;if(t.documentElement.compareDocumentPosition)w=3Dfunction(g,i){if(g=3D=
=3D=3Di){h=3Dtrue;return =
0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return =
g.compareDocumentPosition?-1:1;return =
g.compareDocumentPosition(i)&4?-1:1};else{w=3Dfunction(g,i){var =
n,m,p=3D[],q=3D[];n=3Dg.parentNode;m=3Di.parentNode;var =
u=3Dn;if(g=3D=3D=3Di){h=3Dtrue;return 0}else if(n=3D=3D=3Dm)return =
I(g,i);else if(n){if(!m)return 1}else return-1;=0A=
for(;u;){p.unshift(u);u=3Du.parentNode}for(u=3Dm;u;){q.unshift(u);u=3Du.p=
arentNode}n=3Dp.length;m=3Dq.length;for(u=3D0;u<n&&u<m;u++)if(p[u]!=3D=3D=
q[u])return I(p[u],q[u]);return =
u=3D=3D=3Dn?I(g,q[u],-1):I(p[u],i,1)};I=3Dfunction(g,i,n){if(g=3D=3D=3Di)=
return =
n;for(g=3Dg.nextSibling;g;){if(g=3D=3D=3Di)return-1;g=3Dg.nextSibling}ret=
urn 1}}k.getText=3Dfunction(g){for(var =
i=3D"",n,m=3D0;g[m];m++){n=3Dg[m];if(n.nodeType=3D=3D=3D3||n.nodeType=3D=3D=
=3D4)i+=3Dn.nodeValue;else =
if(n.nodeType!=3D=3D8)i+=3Dk.getText(n.childNodes)}return =
i};(function(){var g=3Dt.createElement("div"),=0A=
i=3D"script"+(new =
Date).getTime(),n=3Dt.documentElement;g.innerHTML=3D"<a =
name=3D'"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){=
o.find.ID=3Dfunction(m,p,q){if(typeof =
p.getElementById!=3D=3D"undefined"&&!q)return(p=3Dp.getElementById(m[1]))=
?p.id=3D=3D=3Dm[1]||typeof =
p.getAttributeNode!=3D=3D"undefined"&&p.getAttributeNode("id").nodeValue=3D=
=3D=3Dm[1]?[p]:B:[]};o.filter.ID=3Dfunction(m,p){var q=3Dtypeof =
m.getAttributeNode!=3D=3D"undefined"&&m.getAttributeNode("id");return =
m.nodeType=3D=3D=3D1&&q&&q.nodeValue=3D=3D=3Dp}}n.removeChild(g);=0A=
n=3Dg=3Dnull})();(function(){var =
g=3Dt.createElement("div");g.appendChild(t.createComment(""));if(g.getEle=
mentsByTagName("*").length>0)o.find.TAG=3Dfunction(i,n){var =
m=3Dn.getElementsByTagName(i[1]);if(i[1]=3D=3D=3D"*"){for(var =
p=3D[],q=3D0;m[q];q++)m[q].nodeType=3D=3D=3D1&&p.push(m[q]);m=3Dp}return =
m};g.innerHTML=3D"<a href=3D'#'></a>";if(g.firstChild&&typeof =
g.firstChild.getAttribute!=3D=3D"undefined"&&g.firstChild.getAttribute("h=
ref")!=3D=3D"#")o.attrHandle.href=3Dfunction(i){return =
i.getAttribute("href",2)};g=3Dnull})();t.querySelectorAll&&=0A=
function(){var g=3Dk,i=3Dt.createElement("div");i.innerHTML=3D"<p =
class=3D'TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST")=
.length=3D=3D=3D0)){k=3Dfunction(m,p,q,u){p=3Dp||t;m=3Dm.replace(/\=3D\s*=
([^'"\]]*)\s*\]/g,"=3D'$1']");if(!u&&!k.isXML(p))if(p.nodeType=3D=3D=3D9)=
try{return C(p.querySelectorAll(m),q)}catch(y){}else =
if(p.nodeType=3D=3D=3D1&&p.nodeName.toLowerCase()!=3D=3D"object"){var =
F=3Dp.getAttribute("id"),M=3DF||"__sizzle__";F||p.setAttribute("id",M);tr=
y{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F||=0A=
p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in =
g)k[n]=3Dg[n];i=3Dnull}}();(function(){var =
g=3Dt.documentElement,i=3Dg.matchesSelector||g.mozMatchesSelector||g.webk=
itMatchesSelector||g.msMatchesSelector,n=3Dfalse;try{i.call(t.documentEle=
ment,"[test!=3D'']:sizzle")}catch(m){n=3Dtrue}if(i)k.matchesSelector=3Dfu=
nction(p,q){q=3Dq.replace(/\=3D\s*([^'"\]]*)\s*\]/g,"=3D'$1']");if(!k.isX=
ML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=3D/.test(q))return =
i.call(p,q)}catch(u){}return =
k(q,null,null,[p]).length>0}})();(function(){var g=3D=0A=
t.createElement("div");g.innerHTML=3D"<div class=3D'test e'></div><div =
class=3D'test'></div>";if(!(!g.getElementsByClassName||g.getElementsByCla=
ssName("e").length=3D=3D=3D0)){g.lastChild.className=3D"e";if(g.getElemen=
tsByClassName("e").length!=3D=3D1){o.order.splice(1,0,"CLASS");o.find.CLA=
SS=3Dfunction(i,n,m){if(typeof =
n.getElementsByClassName!=3D=3D"undefined"&&!m)return =
n.getElementsByClassName(i[1])};g=3Dnull}}})();k.contains=3Dt.documentEle=
ment.contains?function(g,i){return =
g!=3D=3Di&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocu=
mentPosition?=0A=
function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){retur=
n =
false};k.isXML=3Dfunction(g){return(g=3D(g?g.ownerDocument||g:0).document=
Element)?g.nodeName!=3D=3D"HTML":false};var L=3Dfunction(g,i){for(var =
n,m=3D[],p=3D"",q=3Di.nodeType?[i]:i;n=3Do.match.PSEUDO.exec(g);){p+=3Dn[=
0];g=3Dg.replace(o.match.PSEUDO,"")}g=3Do.relative[g]?g+"*":g;n=3D0;for(v=
ar u=3Dq.length;n<u;n++)k(g,q[n],m);return =
k.filter(p,m)};c.find=3Dk;c.expr=3Dk.selectors;c.expr[":"]=3Dc.expr.filte=
rs;c.unique=3Dk.uniqueSort;c.text=3Dk.getText;c.isXMLDoc=3Dk.isXML;=0A=
c.contains=3Dk.contains})();var =
Za=3D/Until$/,$a=3D/^(?:parents|prevUntil|prevAll)/,ab=3D/,/,Na=3D/^.[^:#=
\[\.,]*$/,bb=3DArray.prototype.slice,cb=3Dc.expr.match.POS;c.fn.extend({f=
ind:function(a){for(var =
b=3Dthis.pushStack("","find",a),d=3D0,e=3D0,f=3Dthis.length;e<f;e++){d=3D=
b.length;c.find(a,this[e],b);if(e>0)for(var h=3Dd;h<b.length;h++)for(var =
l=3D0;l<d;l++)if(b[l]=3D=3D=3Db[h]){b.splice(h--,1);break}}return =
b},has:function(a){var b=3Dc(a);return this.filter(function(){for(var =
d=3D0,e=3Db.length;d<e;d++)if(c.contains(this,b[d]))return true})},=0A=
not:function(a){return =
this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return =
this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.f=
ilter(a,this).length>0},closest:function(a,b){var =
d=3D[],e,f,h=3Dthis[0];if(c.isArray(a)){var =
l,k=3D{},o=3D1;if(h&&a.length){e=3D0;for(f=3Da.length;e<f;e++){l=3Da[e];k=
[l]||(k[l]=3Dc.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.o=
wnerDocument&&h!=3D=3Db;){for(l in =
k){e=3Dk[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:=
h,level:o})}h=3D=0A=
h.parentNode;o++}}return =
d}l=3Dcb.test(a)?c(a,b||this.context):null;e=3D0;for(f=3Dthis.length;e<f;=
e++)for(h=3Dthis[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.=
push(h);break}else{h=3Dh.parentNode;if(!h||!h.ownerDocument||h=3D=3D=3Db)=
break}d=3Dd.length>1?c.unique(d):d;return =
this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof =
a=3D=3D=3D"string")return =
c.inArray(this[0],a?c(a):this.parent().children());return =
c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=3Dtypeof =
a=3D=3D=3D"string"?c(a,b||this.context):=0A=
c.makeArray(a),e=3Dc.merge(this.get(),d);return =
this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType=3D=3D=3D=
11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType=3D=3D=3D11?e:c.uniq=
ue(e))},andSelf:function(){return =
this.add(this.prevObject)}});c.each({parent:function(a){return(a=3Da.pare=
ntNode)&&a.nodeType!=3D=3D11?a:null},parents:function(a){return =
c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return =
c.dir(a,"parentNode",d)},next:function(a){return =
c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,=0A=
2,"previousSibling")},nextAll:function(a){return =
c.dir(a,"nextSibling")},prevAll:function(a){return =
c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return =
c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return =
c.dir(a,"previousSibling",d)},siblings:function(a){return =
c.sibling(a.parentNode.firstChild,a)},children:function(a){return =
c.sibling(a.firstChild)},contents:function(a){return =
c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.make=
Array(a.childNodes)}},function(a,=0A=
b){c.fn[a]=3Dfunction(d,e){var =
f=3Dc.map(this,b,d);Za.test(a)||(e=3Dd);if(e&&typeof =
e=3D=3D=3D"string")f=3Dc.filter(e,f);f=3Dthis.length>1?c.unique(f):f;if((=
this.length>1||ab.test(e))&&$a.test(a))f=3Df.reverse();return =
this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:func=
tion(a,b,d){if(d)a=3D":not("+a+")";return =
b.length=3D=3D=3D1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matche=
s(a,b)},dir:function(a,b,d){var =
e=3D[];for(a=3Da[b];a&&a.nodeType!=3D=3D9&&(d=3D=3D=3DB||a.nodeType!=3D=3D=
1||!c(a).is(d));){a.nodeType=3D=3D=3D1&&=0A=
e.push(a);a=3Da[b]}return e},nth:function(a,b,d){b=3Db||1;for(var =
e=3D0;a;a=3Da[d])if(a.nodeType=3D=3D=3D1&&++e=3D=3D=3Db)break;return =
a},sibling:function(a,b){for(var =
d=3D[];a;a=3Da.nextSibling)a.nodeType=3D=3D=3D1&&a!=3D=3Db&&d.push(a);ret=
urn d}});var za=3D/ =
jQuery\d+=3D"(?:\d+|null)"/g,$=3D/^\s+/,Aa=3D/<(?!area|br|col|embed|hr|im=
g|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=3D/<([\w:]+)/,db=3D/<tbo=
dy/i,eb=3D/<|&#?\w+;/,Ca=3D/<(?:script|object|embed|option|style)/i,Da=3D=
/checked\s*(?:[^=3D]|=3D\s*.checked.)/i,fb=3D/\=3D([^=3D"'>\s]+\/)>/g,P=3D=
{option:[1,=0A=
"<select =
multiple=3D'multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"=
],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>=
"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tb=
ody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],=
_default:[0,"",""]};P.optgroup=3DP.option;P.tbody=3DP.tfoot=3DP.colgroup=3D=
P.caption=3DP.thead;P.th=3DP.td;if(!c.support.htmlSerialize)P._default=3D=
[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))=
return this.each(function(b){var d=3D=0A=
c(this);d.text(a.call(this,b,d.text()))});if(typeof =
a!=3D=3D"object"&&a!=3D=3DB)return =
this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a)=
);return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return =
this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var =
b=3Dc(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.in=
sertBefore(this[0]);b.map(function(){for(var =
d=3Dthis;d.firstChild&&d.firstChild.nodeType=3D=3D=3D1;)d=3Dd.firstChild;=
return d}).append(this)}return this},=0A=
wrapInner:function(a){if(c.isFunction(a))return =
this.each(function(b){c(this).wrapInner(a.call(this,b))});return =
this.each(function(){var =
b=3Dc(this),d=3Db.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:fu=
nction(a){return =
this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return =
this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWit=
h(this.childNodes)}).end()},append:function(){return =
this.domManip(arguments,true,function(a){this.nodeType=3D=3D=3D1&&this.ap=
pendChild(a)})},=0A=
prepend:function(){return =
this.domManip(arguments,true,function(a){this.nodeType=3D=3D=3D1&&this.in=
sertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].pa=
rentNode)return =
this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,=
this)});else if(arguments.length){var =
a=3Dc(arguments[0]);a.push.apply(a,this.toArray());return =
this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[=
0].parentNode)return =
this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,=0A=
this.nextSibling)});else if(arguments.length){var =
a=3Dthis.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0])=
.toArray());return a}},remove:function(a,b){for(var =
d=3D0,e;(e=3Dthis[d])!=3Dnull;d++)if(!a||c.filter(a,[e]).length){if(!b&&e=
.nodeType=3D=3D=3D1){c.cleanData(e.getElementsByTagName("*"));c.cleanData=
([e])}e.parentNode&&e.parentNode.removeChild(e)}return =
this},empty:function(){for(var =
a=3D0,b;(b=3Dthis[a])!=3Dnull;a++)for(b.nodeType=3D=3D=3D1&&c.cleanData(b=
.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);=0A=
return this},clone:function(a){var =
b=3Dthis.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){va=
r =
d=3Dthis.outerHTML,e=3Dthis.ownerDocument;if(!d){d=3De.createElement("div=
");d.appendChild(this.cloneNode(true));d=3Dd.innerHTML}return =
c.clean([d.replace(za,"").replace(fb,'=3D"$1">').replace($,"")],e)[0]}els=
e return =
this.cloneNode(true)});if(a=3D=3D=3Dtrue){na(this,b);na(this.find("*"),b.=
find("*"))}return b},html:function(a){if(a=3D=3D=3DB)return =
this[0]&&this[0].nodeType=3D=3D=3D1?this[0].innerHTML.replace(za,""):null=
;=0A=
else if(typeof =
a=3D=3D=3D"string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a)=
)&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=3Da.replace(Aa,"<$1></$2=
>");try{for(var =
b=3D0,d=3Dthis.length;b<d;b++)if(this[b].nodeType=3D=3D=3D1){c.cleanData(=
this[b].getElementsByTagName("*"));this[b].innerHTML=3Da}}catch(e){this.e=
mpty().append(a)}}else c.isFunction(a)?this.each(function(f){var =
h=3Dc(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);retu=
rn =
this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunc=
tion(a))return this.each(function(b){var d=3D=0A=
c(this),e=3Dd.html();d.replaceWith(a.call(this,b,e))});if(typeof =
a!=3D=3D"string")a=3Dc(a).detach();return this.each(function(){var =
b=3Dthis.nextSibling,d=3Dthis.parentNode;c(this).remove();b?c(b).before(a=
):c(d).append(a)})}else return =
this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function=
(a){return this.remove(a,true)},domManip:function(a,b,d){var =
e,f,h,l=3Da[0],k=3D[];if(!c.support.checkClone&&arguments.length=3D=3D=3D=
3&&typeof l=3D=3D=3D"string"&&Da.test(l))return =
this.each(function(){c(this).domManip(a,=0A=
b,d,true)});if(c.isFunction(l))return this.each(function(x){var =
r=3Dc(this);a[0]=3Dl.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(thi=
s[0]){e=3Dl&&l.parentNode;e=3Dc.support.parentNode&&e&&e.nodeType=3D=3D=3D=
11&&e.childNodes.length=3D=3D=3Dthis.length?{fragment:e}:c.buildFragment(=
a,this,k);h=3De.fragment;if(f=3Dh.childNodes.length=3D=3D=3D1?h=3Dh.first=
Child:h.firstChild){b=3Db&&c.nodeName(f,"tr");f=3D0;for(var =
o=3Dthis.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getE=
lementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.c=
reateElement("tbody")):=0A=
this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.le=
ngth&&c.each(k,Oa)}return this}});c.buildFragment=3Dfunction(a,b,d){var =
e,f,h;b=3Db&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length=3D=3D=3D1&&typeo=
f =
a[0]=3D=3D=3D"string"&&a[0].length<512&&b=3D=3D=3Dt&&!Ca.test(a[0])&&(c.s=
upport.checkClone||!Da.test(a[0]))){f=3Dtrue;if(h=3Dc.fragments[a[0]])if(=
h!=3D=3D1)e=3Dh}if(!e){e=3Db.createDocumentFragment();c.clean(a,b,e,d)}if=
(f)c.fragments[a[0]]=3Dh?e:1;return{fragment:e,cacheable:f}};c.fragments=3D=
{};c.each({appendTo:"append",=0A=
prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:=
"replaceWith"},function(a,b){c.fn[a]=3Dfunction(d){var =
e=3D[];d=3Dc(d);var =
f=3Dthis.length=3D=3D=3D1&&this[0].parentNode;if(f&&f.nodeType=3D=3D=3D11=
&&f.childNodes.length=3D=3D=3D1&&d.length=3D=3D=3D1){d[b](this[0]);return=
 this}else{f=3D0;for(var h=3Dd.length;f<h;f++){var =
l=3D(f>0?this.clone(true):this).get();c(d[f])[b](l);e=3De.concat(l)}retur=
n =
this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=3D=
b||t;if(typeof b.createElement=3D=3D=3D"undefined")b=3Db.ownerDocument||=0A=
b[0]&&b[0].ownerDocument||t;for(var =
f=3D[],h=3D0,l;(l=3Da[h])!=3Dnull;h++){if(typeof =
l=3D=3D=3D"number")l+=3D"";if(l){if(typeof =
l=3D=3D=3D"string"&&!eb.test(l))l=3Db.createTextNode(l);else if(typeof =
l=3D=3D=3D"string"){l=3Dl.replace(Aa,"<$1></$2>");var =
k=3D(Ba.exec(l)||["",""])[1].toLowerCase(),o=3DP[k]||P._default,x=3Do[0],=
r=3Db.createElement("div");for(r.innerHTML=3Do[1]+l+o[2];x--;)r=3Dr.lastC=
hild;if(!c.support.tbody){x=3Ddb.test(l);k=3Dk=3D=3D=3D"table"&&!x?r.firs=
tChild&&r.firstChild.childNodes:o[1]=3D=3D=3D"<table>"&&!x?r.childNodes:[=
];for(o=3Dk.length-=0A=
1;o>=3D0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].pare=
ntNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.inser=
tBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=3Dr.childNodes}if(=
l.nodeType)f.push(l);else =
f=3Dc.merge(f,l)}}if(d)for(h=3D0;f[h];h++)if(e&&c.nodeName(f[h],"script")=
&&(!f[h].type||f[h].type.toLowerCase()=3D=3D=3D"text/javascript"))e.push(=
f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeTyp=
e=3D=3D=3D1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElements=
ByTagName("script"))));=0A=
d.appendChild(f[h])}return f},cleanData:function(a){for(var =
b,d,e=3Dc.cache,f=3Dc.event.special,h=3Dc.support.deleteExpando,l=3D0,k;(=
k=3Da[l])!=3Dnull;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]=
))if(d=3Dk[c.expando]){if((b=3De[d])&&b.events)for(var o in =
b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete=
 k[c.expando];else =
k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var =
Ea=3D/alpha\([^)]*\)/i,gb=3D/opacity=3D([^)]*)/,hb=3D/-([a-z])/ig,ib=3D/(=
[A-Z])/g,Fa=3D/^-?\d+(?:px)?$/i,=0A=
jb=3D/^-?\d/,kb=3D{position:"absolute",visibility:"hidden",display:"block=
"},Pa=3D["Left","Right"],Qa=3D["Top","Bottom"],W,Ga,aa,lb=3Dfunction(a,b)=
{return =
b.toUpperCase()};c.fn.css=3Dfunction(a,b){if(arguments.length=3D=3D=3D2&&=
b=3D=3D=3DB)return this;return =
c.access(this,a,b,true,function(d,e,f){return =
f!=3D=3DB?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:f=
unction(a,b){if(b){var d=3DW(a,"opacity","opacity");return =
d=3D=3D=3D""?"1":d}else return =
a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true,=0A=
zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat=
":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType=3D=3D=3D3||a.=
nodeType=3D=3D=3D8||!a.style)){var =
f,h=3Dc.camelCase(b),l=3Da.style,k=3Dc.cssHooks[h];b=3Dc.cssProps[h]||h;i=
f(d!=3D=3DB){if(!(typeof =
d=3D=3D=3D"number"&&isNaN(d)||d=3D=3Dnull)){if(typeof =
d=3D=3D=3D"number"&&!c.cssNumber[h])d+=3D"px";if(!k||!("set"in =
k)||(d=3Dk.set(a,d))!=3D=3DB)try{l[b]=3Dd}catch(o){}}}else{if(k&&"get"in =
k&&(f=3Dk.get(a,false,e))!=3D=3DB)return f;return =
l[b]}}},css:function(a,b,d){var e,f=3Dc.camelCase(b),=0A=
h=3Dc.cssHooks[f];b=3Dc.cssProps[f]||f;if(h&&"get"in =
h&&(e=3Dh.get(a,true,d))!=3D=3DB)return e;else if(W)return =
W(a,b,f)},swap:function(a,b,d){var e=3D{},f;for(f in =
b){e[f]=3Da.style[f];a.style[f]=3Db[f]}d.call(a);for(f in =
b)a.style[f]=3De[f]},camelCase:function(a){return =
a.replace(hb,lb)}});c.curCSS=3Dc.css;c.each(["height","width"],function(a=
,b){c.cssHooks[b]=3D{get:function(d,e,f){var =
h;if(e){if(d.offsetWidth!=3D=3D0)h=3Doa(d,b,f);else =
c.swap(d,kb,function(){h=3Doa(d,b,f)});if(h<=3D0){h=3DW(d,b,b);if(h=3D=3D=
=3D"0px"&&aa)h=3Daa(d,b,b);=0A=
if(h!=3Dnull)return =
h=3D=3D=3D""||h=3D=3D=3D"auto"?"0px":h}if(h<0||h=3D=3Dnull){h=3Dd.style[b=
];return h=3D=3D=3D""||h=3D=3D=3D"auto"?"0px":h}return typeof =
h=3D=3D=3D"string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=3DparseF=
loat(e);if(e>=3D0)return e+"px"}else return =
e}}});if(!c.support.opacity)c.cssHooks.opacity=3D{get:function(a,b){retur=
n =
gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?par=
seFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var =
d=3Da.style;d.zoom=3D1;var =
e=3Dc.isNaN(b)?"":"alpha(opacity=3D"+b*100+")",f=3D=0A=
d.filter||"";d.filter=3DEa.test(f)?f.replace(Ea,e):d.filter+" =
"+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=3Dfunction(a,b,=
d){var =
e;d=3Dd.replace(ib,"-$1").toLowerCase();if(!(b=3Da.ownerDocument.defaultV=
iew))return =
B;if(b=3Db.getComputedStyle(a,null)){e=3Db.getPropertyValue(d);if(e=3D=3D=
=3D""&&!c.contains(a.ownerDocument.documentElement,a))e=3Dc.style(a,d)}re=
turn e};if(t.documentElement.currentStyle)aa=3Dfunction(a,b){var =
d,e,f=3Da.currentStyle&&a.currentStyle[b],h=3Da.style;if(!Fa.test(f)&&jb.=
test(f)){d=3Dh.left;=0A=
e=3Da.runtimeStyle.left;a.runtimeStyle.left=3Da.currentStyle.left;h.left=3D=
b=3D=3D=3D"fontSize"?"1em":f||0;f=3Dh.pixelLeft+"px";h.left=3Dd;a.runtime=
Style.left=3De}return =
f=3D=3D=3D""?"auto":f};W=3DGa||aa;if(c.expr&&c.expr.filters){c.expr.filte=
rs.hidden=3Dfunction(a){var b=3Da.offsetHeight;return =
a.offsetWidth=3D=3D=3D0&&b=3D=3D=3D0||!c.support.reliableHiddenOffsets&&(=
a.style.display||c.css(a,"display"))=3D=3D=3D"none"};c.expr.filters.visib=
le=3Dfunction(a){return!c.expr.filters.hidden(a)}}var =
mb=3Dc.now(),nb=3D/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,=0A=
ob=3D/^(?:select|textarea)/i,pb=3D/^(?:color|date|datetime|email|hidden|m=
onth|number|password|range|search|tel|text|time|url|week)$/i,qb=3D/^(?:GE=
T|HEAD)$/,Ra=3D/\[\]$/,T=3D/\=3D\?(&|$)/,ja=3D/\?/,rb=3D/([?&])_=3D[^&]*/=
,sb=3D/^(\w+:)?\/\/([^\/?#]+)/,tb=3D/%20/g,ub=3D/#.*$/,Ha=3Dc.fn.load;c.f=
n.extend({load:function(a,b,d){if(typeof a!=3D=3D"string"&&Ha)return =
Ha.apply(this,arguments);else if(!this.length)return this;var =
e=3Da.indexOf(" ");if(e>=3D0){var =
f=3Da.slice(e,a.length);a=3Da.slice(0,e)}e=3D"GET";if(b)if(c.isFunction(b=
)){d=3Db;b=3Dnull}else if(typeof b=3D=3D=3D=0A=
"object"){b=3Dc.param(b,c.ajaxSettings.traditional);e=3D"POST"}var =
h=3Dthis;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,=
k){if(k=3D=3D=3D"success"||k=3D=3D=3D"notmodified")h.html(f?c("<div>").ap=
pend(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[=
l.responseText,k,l])}});return this},serialize:function(){return =
c.param(this.serializeArray())},serializeArray:function(){return =
this.map(function(){return =
this.elements?c.makeArray(this.elements):this}).filter(function(){return =
this.name&&=0A=
!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type)=
)}).map(function(a,b){var d=3Dc(this).val();return =
d=3D=3Dnull?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,valu=
e:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop =
ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" =
"),function(a,b){c.fn[b]=3Dfunction(d){return =
this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=3D=
e||d;d=3Db;b=3Dnull}return =
c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})},=0A=
getScript:function(a,b){return =
c.get(a,null,b,"script")},getJSON:function(a,b,d){return =
c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=3De||d;=
d=3Db;b=3D{}}return =
c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:functi=
on(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:=
true,type:"GET",contentType:"application/x-www-form-urlencoded",processDa=
ta:true,async:true,xhr:function(){return new =
E.XMLHttpRequest},accepts:{xml:"application/xml, =
text/xml",html:"text/html",=0A=
script:"text/javascript, application/javascript",json:"application/json, =
text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var =
b=3Dc.extend(true,{},c.ajaxSettings,a),d,e,f,h=3Db.type.toUpperCase(),l=3D=
qb.test(h);b.url=3Db.url.replace(ub,"");b.context=3Da&&a.context!=3Dnull?=
a.context:b;if(b.data&&b.processData&&typeof =
b.data!=3D=3D"string")b.data=3Dc.param(b.data,b.traditional);if(b.dataTyp=
e=3D=3D=3D"jsonp"){if(h=3D=3D=3D"GET")T.test(b.url)||(b.url+=3D(ja.test(b=
.url)?"&":"?")+(b.jsonp||"callback")+"=3D?");else if(!b.data||=0A=
!T.test(b.data))b.data=3D(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=3D=
?";b.dataType=3D"json"}if(b.dataType=3D=3D=3D"json"&&(b.data&&T.test(b.da=
ta)||T.test(b.url))){d=3Db.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=3D=
(b.data+"").replace(T,"=3D"+d+"$1");b.url=3Db.url.replace(T,"=3D"+d+"$1")=
;b.dataType=3D"script";var =
k=3DE[d];E[d]=3Dfunction(m){if(c.isFunction(k))k(m);else{E[d]=3DB;try{del=
ete =
E[d]}catch(p){}}f=3Dm;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);=
r&&r.removeChild(A)}}if(b.dataType=3D=3D=3D"script"&&b.cache=3D=3D=3Dnull=
)b.cache=3D=0A=
false;if(b.cache=3D=3D=3Dfalse&&l){var =
o=3Dc.now(),x=3Db.url.replace(rb,"$1_=3D"+o);b.url=3Dx+(x=3D=3D=3Db.url?(=
ja.test(b.url)?"&":"?")+"_=3D"+o:"")}if(b.data&&l)b.url+=3D(ja.test(b.url=
)?"&":"?")+b.data;b.global&&c.active++=3D=3D=3D0&&c.event.trigger("ajaxSt=
art");o=3D(o=3Dsb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!=3D=3Dlocation.=
protocol||o[2].toLowerCase()!=3D=3Dlocation.host);if(b.dataType=3D=3D=3D"=
script"&&h=3D=3D=3D"GET"&&o){var =
r=3Dt.getElementsByTagName("head")[0]||t.documentElement,A=3Dt.createElem=
ent("script");if(b.scriptCharset)A.charset=3Db.scriptCharset;=0A=
A.src=3Db.url;if(!d){var =
C=3Dfalse;A.onload=3DA.onreadystatechange=3Dfunction(){if(!C&&(!this.read=
yState||this.readyState=3D=3D=3D"loaded"||this.readyState=3D=3D=3D"comple=
te")){C=3Dtrue;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onloa=
d=3DA.onreadystatechange=3Dnull;r&&A.parentNode&&r.removeChild(A)}}}r.ins=
ertBefore(A,r.firstChild);return B}var =
J=3Dfalse,w=3Db.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,=
b.password):w.open(h,b.url,b.async);try{if(b.data!=3Dnull&&!l||a&&a.conte=
ntType)w.setRequestHeader("Content-Type",=0A=
b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader=
("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHe=
ader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-Wi=
th","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b=
.dataType]?b.accepts[b.dataType]+", */*; =
q=3D0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.cal=
l(b.context,w,b)=3D=3D=3Dfalse){b.global&&c.active--=3D=3D=3D1&&c.event.t=
rigger("ajaxStop");w.abort();return false}b.global&&=0A=
c.triggerGlobal(b,"ajaxSend",[w,b]);var =
L=3Dw.onreadystatechange=3Dfunction(m){if(!w||w.readyState=3D=3D=3D0||m=3D=
=3D=3D"abort"){J||c.handleComplete(b,w,e,f);J=3Dtrue;if(w)w.onreadystatec=
hange=3Dc.noop}else =
if(!J&&w&&(w.readyState=3D=3D=3D4||m=3D=3D=3D"timeout")){J=3Dtrue;w.onrea=
dystatechange=3Dc.noop;e=3Dm=3D=3D=3D"timeout"?"timeout":!c.httpSuccess(w=
)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success=
";var =
p;if(e=3D=3D=3D"success")try{f=3Dc.httpData(w,b.dataType,b)}catch(q){e=3D=
"parsererror";p=3Dq}if(e=3D=3D=3D"success"||e=3D=3D=3D"notmodified")d||=0A=
c.handleSuccess(b,w,e,f);else =
c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m=3D=3D=3D"timeout"&&=
w.abort();if(b.async)w=3Dnull}};try{var =
g=3Dw.abort;w.abort=3Dfunction(){w&&Function.prototype.call.call(g,w);L("=
abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("=
timeout")},b.timeout);try{w.send(l||b.data=3D=3Dnull?null:b.data)}catch(n=
){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return=
 w}},param:function(a,b){var =
d=3D[],e=3Dfunction(h,l){l=3Dc.isFunction(l)?l():l;d[d.length]=3D=0A=
encodeURIComponent(h)+"=3D"+encodeURIComponent(l)};if(b=3D=3D=3DB)b=3Dc.a=
jaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(t=
his.name,this.value)});else for(var f in a)da(f,a[f],b,e);return =
d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{}=
,handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.g=
lobal&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b=
,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGloba=
l(a,"ajaxSuccess",=0A=
[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.cont=
ext,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.ac=
tive--=3D=3D=3D1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b=
,d){(a.context&&a.context.url=3D=3Dnull?c(a.context):c.event).trigger(b,d=
)},httpSuccess:function(a){try{return!a.status&&location.protocol=3D=3D=3D=
"file:"||a.status>=3D200&&a.status<300||a.status=3D=3D=3D304||a.status=3D=
=3D=3D1223}catch(b){}return false},httpNotModified:function(a,b){var =
d=3Da.getResponseHeader("Last-Modified"),=0A=
e=3Da.getResponseHeader("Etag");if(d)c.lastModified[b]=3Dd;if(e)c.etag[b]=
=3De;return a.status=3D=3D=3D304},httpData:function(a,b,d){var =
e=3Da.getResponseHeader("content-type")||"",f=3Db=3D=3D=3D"xml"||!b&&e.in=
dexOf("xml")>=3D0;a=3Df?a.responseXML:a.responseText;f&&a.documentElement=
.nodeName=3D=3D=3D"parsererror"&&c.error("parsererror");if(d&&d.dataFilte=
r)a=3Dd.dataFilter(a,b);if(typeof =
a=3D=3D=3D"string")if(b=3D=3D=3D"json"||!b&&e.indexOf("json")>=3D0)a=3Dc.=
parseJSON(a);else =
if(b=3D=3D=3D"script"||!b&&e.indexOf("javascript")>=3D0)c.globalEval(a);r=
eturn a}});=0A=
if(E.ActiveXObject)c.ajaxSettings.xhr=3Dfunction(){if(E.location.protocol=
!=3D=3D"file:")try{return new E.XMLHttpRequest}catch(a){}try{return new =
E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=3D!!c.aja=
xSettings.xhr();var =
ea=3D{},vb=3D/^(?:toggle|show|hide)$/,wb=3D/^([+\-]=3D)?([\d+.\-]+)(.*)$/=
,ba,pa=3D[["height","marginTop","marginBottom","paddingTop","paddingBotto=
m"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["o=
pacity"]];c.fn.extend({show:function(a,b,d){if(a||a=3D=3D=3D0)return =
this.animate(S("show",=0A=
3),a,b,d);else{d=3D0;for(var =
e=3Dthis.length;d<e;d++){a=3Dthis[d];b=3Da.style.display;if(!c.data(a,"ol=
ddisplay")&&b=3D=3D=3D"none")b=3Da.style.display=3D"";b=3D=3D=3D""&&c.css=
(a,"display")=3D=3D=3D"none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=
=3D0;d<e;d++){a=3Dthis[d];b=3Da.style.display;if(b=3D=3D=3D""||b=3D=3D=3D=
"none")a.style.display=3Dc.data(a,"olddisplay")||""}return =
this}},hide:function(a,b,d){if(a||a=3D=3D=3D0)return =
this.animate(S("hide",3),a,b,d);else{a=3D0;for(b=3Dthis.length;a<b;a++){d=
=3Dc.css(this[a],"display");d!=3D=3D"none"&&c.data(this[a],"olddisplay",=0A=
d)}for(a=3D0;a<b;a++)this[a].style.display=3D"none";return =
this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=3Dtypeof =
a=3D=3D=3D"boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.appl=
y(this,arguments);else a=3D=3Dnull||e?this.each(function(){var =
f=3De?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S=
("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return =
this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},=
a,d,e)},animate:function(a,b,d,e){var f=3Dc.speed(b,=0A=
d,e);if(c.isEmptyObject(a))return this.each(f.complete);return =
this[f.queue=3D=3D=3Dfalse?"each":"queue"](function(){var =
h=3Dc.extend({},f),l,k=3Dthis.nodeType=3D=3D=3D1,o=3Dk&&c(this).is(":hidd=
en"),x=3Dthis;for(l in a){var =
r=3Dc.camelCase(l);if(l!=3D=3Dr){a[r]=3Da[l];delete =
a[l];l=3Dr}if(a[l]=3D=3D=3D"hide"&&o||a[l]=3D=3D=3D"show"&&!o)return =
h.complete.call(this);if(k&&(l=3D=3D=3D"height"||l=3D=3D=3D"width")){h.ov=
erflow=3D[this.style.overflow,this.style.overflowX,this.style.overflowY];=
if(c.css(this,"display")=3D=3D=3D"inline"&&c.css(this,"float")=3D=3D=3D"n=
one")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)=3D=3D=3D=0A=
"inline")this.style.display=3D"inline-block";else{this.style.display=3D"i=
nline";this.style.zoom=3D1}else =
this.style.display=3D"inline-block"}if(c.isArray(a[l])){(h.specialEasing=3D=
h.specialEasing||{})[l]=3Da[l][1];a[l]=3Da[l][0]}}if(h.overflow!=3Dnull)t=
his.style.overflow=3D"hidden";h.curAnim=3Dc.extend({},a);c.each(a,functio=
n(A,C){var J=3Dnew =
c.fx(x,h,A);if(vb.test(C))J[C=3D=3D=3D"toggle"?o?"show":"hide":C](a);else=
{var w=3Dwb.exec(C),I=3DJ.cur()||0;if(w){var =
L=3DparseFloat(w[2]),g=3Dw[3]||"px";if(g!=3D=3D"px"){c.style(x,A,(L||1)+g=
);I=3D(L||=0A=
1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=3D(w[1]=3D=3D=3D"-=3D"?-1:1)*L+I;=
J.custom(I,L,g)}else J.custom(I,C,"")}});return =
true})},stop:function(a,b){var =
d=3Dc.timers;a&&this.queue([]);this.each(function(){for(var =
e=3Dd.length-1;e>=3D0;e--)if(d[e].elem=3D=3D=3Dthis){b&&d[e](true);d.spli=
ce(e,1)}});b||this.dequeue();return =
this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("=
toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{o=
pacity:"toggle"}},function(a,b){c.fn[a]=3Dfunction(d,e,f){return =
this.animate(b,=0A=
d,e,f)}});c.extend({speed:function(a,b,d){var e=3Da&&typeof =
a=3D=3D=3D"object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,=
duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=3Dc.fx.off?0:t=
ypeof e.duration=3D=3D=3D"number"?e.duration:e.duration in =
c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=3De.comple=
te;e.complete=3Dfunction(){e.queue!=3D=3Dfalse&&c(this).dequeue();c.isFun=
ction(e.old)&&e.old.call(this)};return =
e},easing:{linear:function(a,b,d,e){return =
d+e*a},swing:function(a,b,d,e){return(-Math.cos(a*=0A=
Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=3Db;this.=
elem=3Da;this.prop=3Dd;if(!b.orig)b.orig=3D{}}});c.fx.prototype=3D{update=
:function(){this.options.step&&this.options.step.call(this.elem,this.now,=
this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if=
(this.elem[this.prop]!=3Dnull&&(!this.elem.style||this.elem.style[this.pr=
op]=3D=3Dnull))return this.elem[this.prop];var =
a=3DparseFloat(c.css(this.elem,this.prop));return =
a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)}=0A=
var =
f=3Dthis,h=3Dc.fx;this.startTime=3Dc.now();this.start=3Da;this.end=3Db;th=
is.unit=3Dd||this.unit||"px";this.now=3Dthis.start;this.pos=3Dthis.state=3D=
0;e.elem=3Dthis.elem;if(e()&&c.timers.push(e)&&!ba)ba=3DsetInterval(h.tic=
k,h.interval)},show:function(){this.options.orig[this.prop]=3Dc.style(thi=
s.elem,this.prop);this.options.show=3Dtrue;this.custom(this.prop=3D=3D=3D=
"width"||this.prop=3D=3D=3D"height"?1:0,this.cur());c(this.elem).show()},=
hide:function(){this.options.orig[this.prop]=3Dc.style(this.elem,this.pro=
p);this.options.hide=3Dtrue;=0A=
this.custom(this.cur(),0)},step:function(a){var =
b=3Dc.now(),d=3Dtrue;if(a||b>=3Dthis.options.duration+this.startTime){thi=
s.now=3Dthis.end;this.pos=3Dthis.state=3D1;this.update();this.options.cur=
Anim[this.prop]=3Dtrue;for(var e in =
this.options.curAnim)if(this.options.curAnim[e]!=3D=3Dtrue)d=3Dfalse;if(d=
){if(this.options.overflow!=3Dnull&&!c.support.shrinkWrapBlocks){var =
f=3Dthis.elem,h=3Dthis.options;c.each(["","X","Y"],function(k,o){f.style[=
"overflow"+o]=3Dh.overflow[k]})}this.options.hide&&c(this.elem).hide();if=
(this.options.hide||=0A=
this.options.show)for(var l in =
this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.optio=
ns.complete.call(this.elem)}return =
false}else{a=3Db-this.startTime;this.state=3Da/this.options.duration;b=3D=
this.options.easing||(c.easing.swing?"swing":"linear");this.pos=3Dc.easin=
g[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](t=
his.state,a,0,1,this.options.duration);this.now=3Dthis.start+(this.end-th=
is.start)*this.pos;this.update()}return =
true}};c.extend(c.fx,{tick:function(){for(var a=3D=0A=
c.timers,b=3D0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop=
()},interval:13,stop:function(){clearInterval(ba);ba=3Dnull},speeds:{slow=
:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opa=
city",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=
=3Dnull)a.elem.style[a.prop]=3D(a.prop=3D=3D=3D"width"||a.prop=3D=3D=3D"h=
eight"?Math.max(0,a.now):a.now)+a.unit;else =
a.elem[a.prop]=3Da.now}}});if(c.expr&&c.expr.filters)c.expr.filters.anima=
ted=3Dfunction(a){return c.grep(c.timers,function(b){return a=3D=3D=3D=0A=
b.elem}).length};var =
xb=3D/^t(?:able|d|h)$/i,Ia=3D/^(?:body|html)$/i;c.fn.offset=3D"getBoundin=
gClientRect"in t.documentElement?function(a){var =
b=3Dthis[0],d;if(a)return =
this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocum=
ent)return null;if(b=3D=3D=3Db.ownerDocument.body)return =
c.offset.bodyOffset(b);try{d=3Db.getBoundingClientRect()}catch(e){}var =
f=3Db.ownerDocument,h=3Df.documentElement;if(!d||!c.contains(h,b))return =
d||{top:0,left:0};b=3Df.body;f=3Dfa(f);return{top:d.top+(f.pageYOffset||c=
.support.boxModel&&=0A=
h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pa=
geXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft|=
|b.clientLeft||0)}}:function(a){var b=3Dthis[0];if(a)return =
this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocum=
ent)return null;if(b=3D=3D=3Db.ownerDocument.body)return =
c.offset.bodyOffset(b);c.offset.initialize();var =
d,e=3Db.offsetParent,f=3Db.ownerDocument,h=3Df.documentElement,l=3Df.body=
;d=3D(f=3Df.defaultView)?f.getComputedStyle(b,null):b.currentStyle;=0A=
for(var =
k=3Db.offsetTop,o=3Db.offsetLeft;(b=3Db.parentNode)&&b!=3D=3Dl&&b!=3D=3Dh=
;){if(c.offset.supportsFixedPosition&&d.position=3D=3D=3D"fixed")break;d=3D=
f?f.getComputedStyle(b,null):b.currentStyle;k-=3Db.scrollTop;o-=3Db.scrol=
lLeft;if(b=3D=3D=3De){k+=3Db.offsetTop;o+=3Db.offsetLeft;if(c.offset.does=
NotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeNam=
e))){k+=3DparseFloat(d.borderTopWidth)||0;o+=3DparseFloat(d.borderLeftWid=
th)||0}e=3Db.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisibl=
e&&d.overflow!=3D=3D"visible"){k+=3D=0A=
parseFloat(d.borderTopWidth)||0;o+=3DparseFloat(d.borderLeftWidth)||0}d=3D=
d}if(d.position=3D=3D=3D"relative"||d.position=3D=3D=3D"static"){k+=3Dl.o=
ffsetTop;o+=3Dl.offsetLeft}if(c.offset.supportsFixedPosition&&d.position=3D=
=3D=3D"fixed"){k+=3DMath.max(h.scrollTop,l.scrollTop);o+=3DMath.max(h.scr=
ollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset=3D{initialize:functi=
on(){var =
a=3Dt.body,b=3Dt.createElement("div"),d,e,f,h=3DparseFloat(c.css(a,"margi=
nTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,bo=
rder:0,width:"1px",=0A=
height:"1px",visibility:"hidden"});b.innerHTML=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>";a.insertBefore(b,a.firstChi=
ld);d=3Db.firstChild;e=3Dd.firstChild;f=3Dd.nextSibling.firstChild.firstC=
hild;this.doesNotAddBorder=3De.offsetTop!=3D=3D5;this.doesAddBorderForTab=
leAndCells=3D=0A=
f.offsetTop=3D=3D=3D5;e.style.position=3D"fixed";e.style.top=3D"20px";thi=
s.supportsFixedPosition=3De.offsetTop=3D=3D=3D20||e.offsetTop=3D=3D=3D15;=
e.style.position=3De.style.top=3D"";d.style.overflow=3D"hidden";d.style.p=
osition=3D"relative";this.subtractsBorderForOverflowNotVisible=3De.offset=
Top=3D=3D=3D-5;this.doesNotIncludeMarginInBodyOffset=3Da.offsetTop!=3D=3D=
h;a.removeChild(b);c.offset.initialize=3Dc.noop},bodyOffset:function(a){v=
ar =
b=3Da.offsetTop,d=3Da.offsetLeft;c.offset.initialize();if(c.offset.doesNo=
tIncludeMarginInBodyOffset){b+=3DparseFloat(c.css(a,=0A=
"marginTop"))||0;d+=3DparseFloat(c.css(a,"marginLeft"))||0}return{top:b,l=
eft:d}},setOffset:function(a,b,d){var =
e=3Dc.css(a,"position");if(e=3D=3D=3D"static")a.style.position=3D"relativ=
e";var =
f=3Dc(a),h=3Df.offset(),l=3Dc.css(a,"top"),k=3Dc.css(a,"left"),o=3De=3D=3D=
=3D"absolute"&&c.inArray("auto",[l,k])>-1;e=3D{};var =
x=3D{};if(o)x=3Df.position();l=3Do?x.top:parseInt(l,10)||0;k=3Do?x.left:p=
arseInt(k,10)||0;if(c.isFunction(b))b=3Db.call(a,d,h);if(b.top!=3Dnull)e.=
top=3Db.top-h.top+l;if(b.left!=3Dnull)e.left=3Db.left-h.left+k;"using"in =
b?b.using.call(a,=0A=
e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return =
null;var =
a=3Dthis[0],b=3Dthis.offsetParent(),d=3Dthis.offset(),e=3DIa.test(b[0].no=
deName)?{top:0,left:0}:b.offset();d.top-=3DparseFloat(c.css(a,"marginTop"=
))||0;d.left-=3DparseFloat(c.css(a,"marginLeft"))||0;e.top+=3DparseFloat(=
c.css(b[0],"borderTopWidth"))||0;e.left+=3DparseFloat(c.css(b[0],"borderL=
eftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:f=
unction(){return this.map(function(){for(var =
a=3Dthis.offsetParent||t.body;a&&!Ia.test(a.nodeName)&&=0A=
c.css(a,"position")=3D=3D=3D"static";)a=3Da.offsetParent;return =
a})}});c.each(["Left","Top"],function(a,b){var =
d=3D"scroll"+b;c.fn[d]=3Dfunction(e){var f=3Dthis[0],h;if(!f)return =
null;if(e!=3D=3DB)return =
this.each(function(){if(h=3Dfa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?=
e:c(h).scrollTop());else this[d]=3De});else =
return(h=3Dfa(f))?"pageXOffset"in =
h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documen=
tElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],functio=
n(a,b){var d=3Db.toLowerCase();=0A=
c.fn["inner"+b]=3Dfunction(){return =
this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=3Dfu=
nction(e){return =
this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=3D=
function(e){var f=3Dthis[0];if(!f)return =
e=3D=3Dnull?null:this;if(c.isFunction(e))return =
this.each(function(l){var =
k=3Dc(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return =
f.document.compatMode=3D=3D=3D"CSS1Compat"&&f.document.documentElement["c=
lient"+b]||f.document.body["client"+b];else =
if(f.nodeType=3D=3D=3D9)return Math.max(f.documentElement["client"+=0A=
b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.=
documentElement["offset"+b]);else if(e=3D=3D=3DB){f=3Dc.css(f,d);var =
h=3DparseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof =
e=3D=3D=3D"string"?e:e+"px")}})})(window);=0A=

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.zulupa.com.br/scripts/jquery.textareaCounter.plugin.js

/*
* jQuery Textarea Characters Counter Plugin v 2.0
* Examples and documentation at: =
http://roy-jin.appspot.com/jsp/textareaCounter.jsp
* Copyright (c) 2010 Roy Jin
* Version: 2.0 (11-JUN-2010)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
* Requires: jQuery v1.4.2 or later
*/
(function ($) {
    $.fn.textareaCount =3D function (options, fn) {
        var defaults =3D {
            maxCharacterSize: -1,
            originalStyle: 'originalTextareaInfo',
            warningStyle: 'warningTextareaInfo',
            warningNumber: 20,
            displayFormat: '#input characters | #words words'
        };
        var options =3D $.extend(defaults, options);

        var container =3D $(this);

        $("<div class=3D'charleft' style=3D'float: left; font-size: =
10px'>&nbsp;</div>").insertAfter(container);

        //create charleft css
        var charLeftCss =3D {
            'width': container.width()
        };

        var charLeftInfo =3D getNextCharLeftInformation(container);
        charLeftInfo.addClass(options.originalStyle);
        charLeftInfo.css(charLeftCss);

        var numInput =3D 0;
        var maxCharacters =3D options.maxCharacterSize;
        var numLeft =3D 0;
        var numWords =3D 0;

        container.bind('keyup', function (event) { =
limitTextAreaByCharacterCount(); })
				 .bind('mouseover', function (event) { setTimeout(function () { =
limitTextAreaByCharacterCount(); }, 10); })
				 .bind('paste', function (event) { setTimeout(function () { =
limitTextAreaByCharacterCount(); }, 10); });


        function limitTextAreaByCharacterCount() {
            charLeftInfo.html(countByCharacters());
            //function call back
            if (typeof fn !=3D 'undefined') {
                fn.call(this, getInfo());
            }
            return true;
        }

        function countByCharacters() {
            var content =3D container.val();
            var contentLength =3D content.length;

            //Start Cut
            if (options.maxCharacterSize > 0) {
                //If copied content is already more than =
maxCharacterSize, chop it to maxCharacterSize.
                if (contentLength >=3D options.maxCharacterSize) {
                    content =3D content.substring(0, =
options.maxCharacterSize);
                }

                var newlineCount =3D getNewlineCount(content);

                // newlineCount new line character. For windows, it =
occupies 2 characters
                var systemmaxCharacterSize =3D options.maxCharacterSize =
- newlineCount;
                if (!isWin()) {
                    systemmaxCharacterSize =3D options.maxCharacterSize
                }
                if (contentLength > systemmaxCharacterSize) {
                    //avoid scroll bar moving
                    var originalScrollTopPosition =3D this.scrollTop;
                    container.val(content.substring(0, =
systemmaxCharacterSize));
                    this.scrollTop =3D originalScrollTopPosition;
                }
                charLeftInfo.removeClass(options.warningStyle);
                if (systemmaxCharacterSize - contentLength <=3D =
options.warningNumber) {
                    charLeftInfo.addClass(options.warningStyle);
                }

                numInput =3D container.val().length + newlineCount;
                if (!isWin()) {
                    numInput =3D container.val().length;
                }

                numWords =3D =
countWord(getCleanedWordString(container.val()));

                numLeft =3D maxCharacters - numInput;
            } else {
                //normal count, no cut
                var newlineCount =3D getNewlineCount(content);
                numInput =3D container.val().length + newlineCount;
                if (!isWin()) {
                    numInput =3D container.val().length;
                }
                numWords =3D =
countWord(getCleanedWordString(container.val()));
            }

            return formatDisplayInfo();
        }

        function formatDisplayInfo() {
            var format =3D options.displayFormat;
            format =3D format.replace('#input', numInput);
            format =3D format.replace('#words', numWords);
            //When maxCharacters <=3D 0, #max, #left cannot be =
substituted.
            if (maxCharacters > 0) {
                format =3D format.replace('#max', maxCharacters);
                format =3D format.replace('#left', numLeft);
            }
            return format;
        }

        function getInfo() {
            var info =3D {
                input: numInput,
                max: maxCharacters,
                left: numLeft,
                words: numWords
            };
            return info;
        }

        function getNextCharLeftInformation(container) {
            return container.next('.charleft');
        }

        function isWin() {
            var strOS =3D navigator.appVersion;
            if (strOS.toLowerCase().indexOf('win') !=3D -1) {
                return true;
            }
            return false;
        }

        function getNewlineCount(content) {
            var newlineCount =3D 0;
            for (var i =3D 0; i < content.length; i++) {
                if (content.charAt(i) =3D=3D '\n') {
                    newlineCount++;
                }
            }
            return newlineCount;
        }

        function getCleanedWordString(content) {
            var fullStr =3D content + " ";
            var initial_whitespace_rExp =3D /^[^A-Za-z0-9]+/gi;
            var left_trimmedStr =3D =
fullStr.replace(initial_whitespace_rExp, "");
            var non_alphanumerics_rExp =3D rExp =3D /[^A-Za-z0-9]+/gi;
            var cleanedStr =3D =
left_trimmedStr.replace(non_alphanumerics_rExp, " ");
            var splitString =3D cleanedStr.split(" ");
            return splitString;
        }

        function countWord(cleanedWordString) {
            var word_count =3D cleanedWordString.length - 1;
            return word_count;
        }
    };
})(jQuery); 
------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.zulupa.com.br/WebResource.axd?d=t1a3jTzAU1H0YKCENRRgMJ_KOpw35THYtUzRjU-gd4dwS4ZMJBii2NhMSxmLCnO5J3hbvhhhVRXHqlZJsfpzDAL7e2w1&t=634229165073228111

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;
        // e.g. http:
        var action =3D theForm.action || document.location.pathname, =
fragmentIndex =3D action.indexOf('#');
        if (fragmentIndex !=3D=3D -1) {
            action =3D action.substr(0, fragmentIndex);
        }
        if (!__nonMSDOMBrowser) {
            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);
            }
        }
        xmlRequest.open("POST", 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=3D "input") &&
             (src.type.toLowerCase() =3D=3D "submit" || =
src.type.toLowerCase() =3D=3D "button")) ||
            ((src.tagName.toLowerCase() =3D=3D "a") &&
             (src.href !=3D null) && (src.href !=3D "")) ||
            (src.tagName.toLowerCase() =3D=3D "textarea")) {
            return true;
        }
        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_01CC0193.A0CC0FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.zulupa.com.br/ScriptResource.axd?d=IE3SMhz7Nr1IBmkGcxjlmkvWUEaFx8u37_7-tVA1qx1uSBkkj1rBwVNvKi9yCUrMt3bwlZBGqA1FZs1J3FBNjBHpAx7kVN3w7LZhpYLLaSMNRBOZGr1WiPQfdZjfmwUQ1_u15IFjhY-uK22yUn-rjSoQo6c1&t=6df0ad7a

var Page_ValidationVer =3D "125";
var Page_IsValid =3D true;
var Page_BlockSubmit =3D false;
var Page_InvalidControlToBeFocused =3D null;
function ValidatorUpdateDisplay(val) {
    if (typeof(val.display) =3D=3D "string") {
        if (val.display =3D=3D "None") {
            return;
        }
        if (val.display =3D=3D "Dynamic") {
            val.style.display =3D val.isvalid ? "none" : "inline";
            return;
        }
    }
    if ((navigator.userAgent.indexOf("Mac") > -1) &&
        (navigator.userAgent.indexOf("MSIE") > -1)) {
        val.style.display =3D "inline";
    }
    val.style.visibility =3D val.isvalid ? "hidden" : "visible";
}
function ValidatorUpdateIsValid() {
    Page_IsValid =3D AllValidatorsValid(Page_Validators);
}
function AllValidatorsValid(validators) {
    if ((typeof(validators) !=3D "undefined") && (validators !=3D null)) =
{
        var i;
        for (i =3D 0; i < validators.length; i++) {
            if (!validators[i].isvalid) {
                return false;
            }
        }
    }
    return true;
}
function ValidatorHookupControlID(controlID, val) {
    if (typeof(controlID) !=3D "string") {
        return;
    }
    var ctrl =3D document.getElementById(controlID);
    if ((typeof(ctrl) !=3D "undefined") && (ctrl !=3D null)) {
        ValidatorHookupControl(ctrl, val);
    }
    else {
        val.isvalid =3D true;
        val.enabled =3D false;
    }
}
function ValidatorHookupControl(control, val) {
    if (typeof(control.tagName) !=3D "string") {
        return; =20
    }
    if (control.tagName !=3D "INPUT" && control.tagName !=3D "TEXTAREA" =
&& control.tagName !=3D "SELECT") {
        var i;
        for (i =3D 0; i < control.childNodes.length; i++) {
            ValidatorHookupControl(control.childNodes[i], val);
        }
        return;
    }
    else {
        if (typeof(control.Validators) =3D=3D "undefined") {
            control.Validators =3D new Array;
            var eventType;
            if (control.type =3D=3D "radio") {
                eventType =3D "onclick";
            } else {
                eventType =3D "onchange";
                if (typeof(val.focusOnError) =3D=3D "string" && =
val.focusOnError =3D=3D "t") {
                    ValidatorHookupEvent(control, "onblur", =
"ValidatedControlOnBlur(event); ");
                }
            }
            ValidatorHookupEvent(control, eventType, =
"ValidatorOnChange(event); ");
            if (control.type =3D=3D "text" ||
                control.type =3D=3D "password" ||
                control.type =3D=3D "file") {
                ValidatorHookupEvent(control, "onkeypress",=20
                    "event =3D event || window.event; if =
(!ValidatedTextBoxOnKeyPress(event)) { event.cancelBubble =3D true; if =
(event.stopPropagation) event.stopPropagation(); return false; } ");
            }
        }
        control.Validators[control.Validators.length] =3D val;
    }
}
function ValidatorHookupEvent(control, eventType, functionPrefix) {
    var ev =3D control[eventType];
    if (typeof(ev) =3D=3D "function") {
        ev =3D ev.toString();
        ev =3D ev.substring(ev.indexOf("{") + 1, ev.lastIndexOf("}"));
    }
    else {
        ev =3D "";
    }
    control[eventType] =3D new Function("event", functionPrefix + " " + =
ev);
}
function ValidatorGetValue(id) {
    var control;
    control =3D document.getElementById(id);
    if (typeof(control.value) =3D=3D "string") {
        return control.value;
    }
    return ValidatorGetValueRecursive(control);
}
function ValidatorGetValueRecursive(control)
{
    if (typeof(control.value) =3D=3D "string" && (control.type !=3D =
"radio" || control.checked =3D=3D true)) {
        return control.value;
    }
    var i, val;
    for (i =3D 0; i<control.childNodes.length; i++) {
        val =3D ValidatorGetValueRecursive(control.childNodes[i]);
        if (val !=3D "") return val;
    }
    return "";
}
function Page_ClientValidate(validationGroup) {
    Page_InvalidControlToBeFocused =3D null;
    if (typeof(Page_Validators) =3D=3D "undefined") {
        return true;
    }
    var i;
    for (i =3D 0; i < Page_Validators.length; i++) {
        ValidatorValidate(Page_Validators[i], validationGroup, null);
    }
    ValidatorUpdateIsValid();
    ValidationSummaryOnSubmit(validationGroup);
    Page_BlockSubmit =3D !Page_IsValid;
    return Page_IsValid;
}
function ValidatorCommonOnSubmit() {
    Page_InvalidControlToBeFocused =3D null;
    var result =3D !Page_BlockSubmit;
    if ((typeof(window.event) !=3D "undefined") && (window.event !=3D =
null)) {
        window.event.returnValue =3D result;
    }
    Page_BlockSubmit =3D false;
    return result;
}
function ValidatorEnable(val, enable) {
    val.enabled =3D (enable !=3D false);
    ValidatorValidate(val);
    ValidatorUpdateIsValid();
}
function ValidatorOnChange(event) {
    event =3D event || window.event;
    Page_InvalidControlToBeFocused =3D null;
    var targetedControl;
    if ((typeof(event.srcElement) !=3D "undefined") && (event.srcElement =
!=3D null)) {
        targetedControl =3D event.srcElement;
    }
    else {
        targetedControl =3D event.target;
    }
    var vals;
    if (typeof(targetedControl.Validators) !=3D "undefined") {
        vals =3D targetedControl.Validators;
    }
    else {
        if (targetedControl.tagName.toLowerCase() =3D=3D "label") {
            targetedControl =3D =
document.getElementById(targetedControl.htmlFor);
            vals =3D targetedControl.Validators;
        }
    }
    if (vals) {
        for (var i =3D 0; i < vals.length; i++) {
            ValidatorValidate(vals[i], null, event);
        }
    }
    ValidatorUpdateIsValid();
}
function ValidatedTextBoxOnKeyPress(event) {
    event =3D event || window.event;
    if (event.keyCode =3D=3D 13) {
        ValidatorOnChange(event);
        var vals;
        if ((typeof(event.srcElement) !=3D "undefined") && =
(event.srcElement !=3D null)) {
            vals =3D event.srcElement.Validators;
        }
        else {
            vals =3D event.target.Validators;
        }
        return AllValidatorsValid(vals);
    }
    return true;
}
function ValidatedControlOnBlur(event) {
    event =3D event || window.event;
    var control;
    if ((typeof(event.srcElement) !=3D "undefined") && (event.srcElement =
!=3D null)) {
        control =3D event.srcElement;
    }
    else {
        control =3D event.target;
    }
    if ((typeof(control) !=3D "undefined") && (control !=3D null) && =
(Page_InvalidControlToBeFocused =3D=3D control)) {
        control.focus();
        Page_InvalidControlToBeFocused =3D null;
    }
}
function ValidatorValidate(val, validationGroup, event) {
    val.isvalid =3D true;
    if ((typeof(val.enabled) =3D=3D "undefined" || val.enabled !=3D =
false) && IsValidationGroupMatch(val, validationGroup)) {
        if (typeof(val.evaluationfunction) =3D=3D "function") {
            val.isvalid =3D val.evaluationfunction(val);
            if (!val.isvalid && Page_InvalidControlToBeFocused =3D=3D =
null &&
                typeof(val.focusOnError) =3D=3D "string" && =
val.focusOnError =3D=3D "t") {
                ValidatorSetFocus(val, event);
            }
        }
    }
    ValidatorUpdateDisplay(val);
}
function ValidatorSetFocus(val, event) {
    var ctrl;
    if (typeof(val.controlhookup) =3D=3D "string") {
        var eventCtrl;
        if ((typeof(event) !=3D "undefined") && (event !=3D null)) {
            if ((typeof(event.srcElement) !=3D "undefined") && =
(event.srcElement !=3D null)) {
                eventCtrl =3D event.srcElement;
            }
            else {
                eventCtrl =3D event.target;
            }
        }
        if ((typeof(eventCtrl) !=3D "undefined") && (eventCtrl !=3D =
null) &&
            (typeof(eventCtrl.id) =3D=3D "string") &&
            (eventCtrl.id =3D=3D val.controlhookup)) {
            ctrl =3D eventCtrl;
        }
    }
    if ((typeof(ctrl) =3D=3D "undefined") || (ctrl =3D=3D null)) {
        ctrl =3D document.getElementById(val.controltovalidate);
    }
    if ((typeof(ctrl) !=3D "undefined") && (ctrl !=3D null) &&
        (ctrl.tagName.toLowerCase() !=3D "table" || (typeof(event) =
=3D=3D "undefined") || (event =3D=3D null)) &&=20
        ((ctrl.tagName.toLowerCase() !=3D "input") || =
(ctrl.type.toLowerCase() !=3D "hidden")) &&
        (typeof(ctrl.disabled) =3D=3D "undefined" || ctrl.disabled =
=3D=3D null || ctrl.disabled =3D=3D false) &&
        (typeof(ctrl.visible) =3D=3D "undefined" || ctrl.visible =3D=3D =
null || ctrl.visible !=3D false) &&
        (IsInVisibleContainer(ctrl))) {
        if ((ctrl.tagName.toLowerCase() =3D=3D "table" && =
(typeof(__nonMSDOMBrowser) =3D=3D "undefined" || __nonMSDOMBrowser)) ||
            (ctrl.tagName.toLowerCase() =3D=3D "span")) {
            var inputElements =3D ctrl.getElementsByTagName("input");
            var lastInputElement  =3D inputElements[inputElements.length =
-1];
            if (lastInputElement !=3D null) {
                ctrl =3D lastInputElement;
            }
        }
        if (typeof(ctrl.focus) !=3D "undefined" && ctrl.focus !=3D null) =
{
            ctrl.focus();
            Page_InvalidControlToBeFocused =3D ctrl;
        }
    }
}
function IsInVisibleContainer(ctrl) {
    if (typeof(ctrl.style) !=3D "undefined" &&
        ( ( typeof(ctrl.style.display) !=3D "undefined" &&
            ctrl.style.display =3D=3D "none") ||
          ( typeof(ctrl.style.visibility) !=3D "undefined" &&
            ctrl.style.visibility =3D=3D "hidden") ) ) {
        return false;
    }
    else if (typeof(ctrl.parentNode) !=3D "undefined" &&
             ctrl.parentNode !=3D null &&
             ctrl.parentNode !=3D ctrl) {
        return IsInVisibleContainer(ctrl.parentNode);
    }
    return true;
}
function IsValidationGroupMatch(control, validationGroup) {
    if ((typeof(validationGroup) =3D=3D "undefined") || (validationGroup =
=3D=3D null)) {
        return true;
    }
    var controlGroup =3D "";
    if (typeof(control.validationGroup) =3D=3D "string") {
        controlGroup =3D control.validationGroup;
    }
    return (controlGroup =3D=3D validationGroup);
}
function ValidatorOnLoad() {
    if (typeof(Page_Validators) =3D=3D "undefined")
        return;
    var i, val;
    for (i =3D 0; i < Page_Validators.length; i++) {
        val =3D Page_Validators[i];
        if (typeof(val.evaluationfunction) =3D=3D "string") {
            eval("val.evaluationfunction =3D " + val.evaluationfunction =
+ ";");
        }
        if (typeof(val.isvalid) =3D=3D "string") {
            if (val.isvalid =3D=3D "False") {
                val.isvalid =3D false;
                Page_IsValid =3D false;
            }
            else {
                val.isvalid =3D true;
            }
        } else {
            val.isvalid =3D true;
        }
        if (typeof(val.enabled) =3D=3D "string") {
            val.enabled =3D (val.enabled !=3D "False");
        }
        if (typeof(val.controltovalidate) =3D=3D "string") {
            ValidatorHookupControlID(val.controltovalidate, val);
        }
        if (typeof(val.controlhookup) =3D=3D "string") {
            ValidatorHookupControlID(val.controlhookup, val);
        }
    }
    Page_ValidationActive =3D true;
}
function ValidatorConvert(op, dataType, val) {
    function GetFullYear(year) {
        var twoDigitCutoffYear =3D val.cutoffyear % 100;
        var cutoffYearCentury =3D val.cutoffyear - twoDigitCutoffYear;
        return ((year > twoDigitCutoffYear) ? (cutoffYearCentury - 100 + =
year) : (cutoffYearCentury + year));
    }
    var num, cleanInput, m, exp;
    if (dataType =3D=3D "Integer") {
        exp =3D /^\s*[-\+]?\d+\s*$/;
        if (op.match(exp) =3D=3D null)
            return null;
        num =3D parseInt(op, 10);
        return (isNaN(num) ? null : num);
    }
    else if(dataType =3D=3D "Double") {
        exp =3D new RegExp("^\\s*([-\\+])?(\\d*)\\" + val.decimalchar + =
"?(\\d*)\\s*$");
        m =3D op.match(exp);
        if (m =3D=3D null)
            return null;
        if (m[2].length =3D=3D 0 && m[3].length =3D=3D 0)
            return null;
        cleanInput =3D (m[1] !=3D null ? m[1] : "") + (m[2].length>0 ? =
m[2] : "0") + (m[3].length>0 ? "." + m[3] : "");
        num =3D parseFloat(cleanInput);
        return (isNaN(num) ? null : num);
    }
    else if (dataType =3D=3D "Currency") {
        var hasDigits =3D (val.digits > 0);
        var beginGroupSize, subsequentGroupSize;
        var groupSizeNum =3D parseInt(val.groupsize, 10);
        if (!isNaN(groupSizeNum) && groupSizeNum > 0) {
            beginGroupSize =3D "{1," + groupSizeNum + "}";
            subsequentGroupSize =3D "{" + groupSizeNum + "}";
        }
        else {
            beginGroupSize =3D subsequentGroupSize =3D "+";
        }
        exp =3D new RegExp("^\\s*([-\\+])?((\\d" + beginGroupSize + =
"(\\" + val.groupchar + "\\d" + subsequentGroupSize + ")+)|\\d*)"
                        + (hasDigits ? "\\" + val.decimalchar + =
"?(\\d{0," + val.digits + "})" : "")
                        + "\\s*$");
        m =3D op.match(exp);
        if (m =3D=3D null)
            return null;
        if (m[2].length =3D=3D 0 && hasDigits && m[5].length =3D=3D 0)
            return null;
        cleanInput =3D (m[1] !=3D null ? m[1] : "") + m[2].replace(new =
RegExp("(\\" + val.groupchar + ")", "g"), "") + ((hasDigits && =
m[5].length > 0) ? "." + m[5] : "");
        num =3D parseFloat(cleanInput);
        return (isNaN(num) ? null : num);
    }
    else if (dataType =3D=3D "Date") {
        var yearFirstExp =3D new =
RegExp("^\\s*((\\d{4})|(\\d{2}))([-/]|\\. =
?)(\\d{1,2})\\4(\\d{1,2})\\.?\\s*$");
        m =3D op.match(yearFirstExp);
        var day, month, year;
        if (m !=3D null && (((typeof(m[2]) !=3D "undefined") && =
(m[2].length =3D=3D 4)) || val.dateorder =3D=3D "ymd")) {
            day =3D m[6];
            month =3D m[5];
            year =3D (m[2].length =3D=3D 4) ? m[2] : =
GetFullYear(parseInt(m[3], 10));
        }
        else {
            if (val.dateorder =3D=3D "ymd"){
                return null;
            }
            var yearLastExp =3D new RegExp("^\\s*(\\d{1,2})([-/]|\\. =
?)(\\d{1,2})(?:\\s|\\2)((\\d{4})|(\\d{2}))(?:\\s\u0433\\.|\\.)?\\s*$");
            m =3D op.match(yearLastExp);
            if (m =3D=3D null) {
                return null;
            }
            if (val.dateorder =3D=3D "mdy") {
                day =3D m[3];
                month =3D m[1];
            }
            else {
                day =3D m[1];
                month =3D m[3];
            }
            year =3D ((typeof(m[5]) !=3D "undefined") && (m[5].length =
=3D=3D 4)) ? m[5] : GetFullYear(parseInt(m[6], 10));
        }
        month -=3D 1;
        var date =3D new Date(year, month, day);
        if (year < 100) {
            date.setFullYear(year);
        }
        return (typeof(date) =3D=3D "object" && year =3D=3D =
date.getFullYear() && month =3D=3D date.getMonth() && day =3D=3D =
date.getDate()) ? date.valueOf() : null;
    }
    else {
        return op.toString();
    }
}
function ValidatorCompare(operand1, operand2, operator, val) {
    var dataType =3D val.type;
    var op1, op2;
    if ((op1 =3D ValidatorConvert(operand1, dataType, val)) =3D=3D null)
        return false;
    if (operator =3D=3D "DataTypeCheck")
        return true;
    if ((op2 =3D ValidatorConvert(operand2, dataType, val)) =3D=3D null)
        return true;
    switch (operator) {
        case "NotEqual":
            return (op1 !=3D op2);
        case "GreaterThan":
            return (op1 > op2);
        case "GreaterThanEqual":
            return (op1 >=3D op2);
        case "LessThan":
            return (op1 < op2);
        case "LessThanEqual":
            return (op1 <=3D op2);
        default:
            return (op1 =3D=3D op2);
    }
}
function CompareValidatorEvaluateIsValid(val) {
    var value =3D ValidatorGetValue(val.controltovalidate);
    if (ValidatorTrim(value).length =3D=3D 0)
        return true;
    var compareTo =3D "";
    if ((typeof(val.controltocompare) !=3D "string") ||
        (typeof(document.getElementById(val.controltocompare)) =3D=3D =
"undefined") ||
        (null =3D=3D document.getElementById(val.controltocompare))) {
        if (typeof(val.valuetocompare) =3D=3D "string") {
            compareTo =3D val.valuetocompare;
        }
    }
    else {
        compareTo =3D ValidatorGetValue(val.controltocompare);
    }
    var operator =3D "Equal";
    if (typeof(val.operator) =3D=3D "string") {
        operator =3D val.operator;
    }
    return ValidatorCompare(value, compareTo, operator, val);
}
function CustomValidatorEvaluateIsValid(val) {
    var value =3D "";
    if (typeof(val.controltovalidate) =3D=3D "string") {
        value =3D ValidatorGetValue(val.controltovalidate);
        if ((ValidatorTrim(value).length =3D=3D 0) &&
            ((typeof(val.validateemptytext) !=3D "string") || =
(val.validateemptytext !=3D "true"))) {
            return true;
        }
    }
    var args =3D { Value:value, IsValid:true };
    if (typeof(val.clientvalidationfunction) =3D=3D "string") {
        eval(val.clientvalidationfunction + "(val, args) ;");
    }
    return args.IsValid;
}
function RegularExpressionValidatorEvaluateIsValid(val) {
    var value =3D ValidatorGetValue(val.controltovalidate);
    if (ValidatorTrim(value).length =3D=3D 0)
        return true;
    var rx =3D new RegExp(val.validationexpression);
    var matches =3D rx.exec(value);
    return (matches !=3D null && value =3D=3D matches[0]);
}
function ValidatorTrim(s) {
    var m =3D s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (m =3D=3D null) ? "" : m[1];
}
function RequiredFieldValidatorEvaluateIsValid(val) {
    return (ValidatorTrim(ValidatorGetValue(val.controltovalidate)) !=3D =
ValidatorTrim(val.initialvalue))
}
function RangeValidatorEvaluateIsValid(val) {
    var value =3D ValidatorGetValue(val.controltovalidate);
    if (ValidatorTrim(value).length =3D=3D 0)
        return true;
    return (ValidatorCompare(value, val.minimumvalue, =
"GreaterThanEqual", val) &&
            ValidatorCompare(value, val.maximumvalue, "LessThanEqual", =
val));
}
function ValidationSummaryOnSubmit(validationGroup) {
    if (typeof(Page_ValidationSummaries) =3D=3D "undefined")
        return;
    var summary, sums, s;
    var headerSep, first, pre, post, end;
    for (sums =3D 0; sums < Page_ValidationSummaries.length; sums++) {
        summary =3D Page_ValidationSummaries[sums];
        summary.style.display =3D "none";
        if (!Page_IsValid && IsValidationGroupMatch(summary, =
validationGroup)) {
            var i;
            if (summary.showsummary !=3D "False") {
                summary.style.display =3D "";
                if (typeof(summary.displaymode) !=3D "string") {
                    summary.displaymode =3D "BulletList";
                }
                switch (summary.displaymode) {
                    case "List":
                        headerSep =3D "<br>";
                        first =3D "";
                        pre =3D "";
                        post =3D "<br>";
                        end =3D "";
                        break;
                    case "BulletList":
                    default:
                        headerSep =3D "";
                        first =3D "<ul>";
                        pre =3D "<li>";
                        post =3D "</li>";
                        end =3D "</ul>";
                        break;
                    case "SingleParagraph":
                        headerSep =3D " ";
                        first =3D "";
                        pre =3D "";
                        post =3D " ";
                        end =3D "<br>";
                        break;
                }
                s =3D "";
                if (typeof(summary.headertext) =3D=3D "string") {
                    s +=3D summary.headertext + headerSep;
                }
                s +=3D first;
                for (i=3D0; i<Page_Validators.length; i++) {
                    if (!Page_Validators[i].isvalid && =
typeof(Page_Validators[i].errormessage) =3D=3D "string") {
                        s +=3D pre + Page_Validators[i].errormessage + =
post;
                    }
                }
                s +=3D end;
                summary.innerHTML =3D s;
                window.scrollTo(0,0);
            }
            if (summary.showmessagebox =3D=3D "True") {
                s =3D "";
                if (typeof(summary.headertext) =3D=3D "string") {
                    s +=3D summary.headertext + "\r\n";
                }
                var lastValIndex =3D Page_Validators.length - 1;
                for (i=3D0; i<=3DlastValIndex; i++) {
                    if (!Page_Validators[i].isvalid && =
typeof(Page_Validators[i].errormessage) =3D=3D "string") {
                        switch (summary.displaymode) {
                            case "List":
                                s +=3D Page_Validators[i].errormessage;
                                if (i < lastValIndex) {
                                    s +=3D "\r\n";
                                }
                                break;
                            case "BulletList":
                            default:
                                s +=3D "- " + =
Page_Validators[i].errormessage;
                                if (i < lastValIndex) {
                                    s +=3D "\r\n";
                                }
                                break;
                            case "SingleParagraph":
                                s +=3D Page_Validators[i].errormessage + =
" ";
                                break;
                        }
                    }
                }
                alert(s);
            }
        }
    }
}

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.zulupa.com.br/ScriptResource.axd?d=t7oEiD37LxCsHtiLetOOQPoPXTDztYgFfkPCPOuVUhyiHmnM46j8uv695IpaWRSrQZozBi14UC9iUFP3wqY5lelBKHwpCJlE0cRS8bNBtEDMMtl1q4-Hz7S81AEAILgdscrSoA2&t=ffffffffbd2983fc

// Name:        MicrosoftAjax.debug.js
// Assembly:    AjaxControlToolkit
// Version:     4.1.40412.0
// FileVersion: 4.1.40412.2
// (c) 2010 CodePlex Foundation

(function(window, Sys) {

var merge =3D function _merge(target) {
    target =3D target || {};
    foreach(arguments, function(o) {
        if (o) {
            forIn(o, function(v, n) {
                target[n] =3D v;
            });
        }
    }, 1);
    return target;
}
var forIn =3D function _forIn(obj, callback) {
    for (var x in obj) {
        callback(obj[x], x);
    }
}
var foreach =3D function _foreach(arr, callback, start) {
    var cancelled;
    if (arr) {
        arr =3D arr instanceof Array ||=20
            (typeof(arr.length) =3D=3D=3D 'number' && =
(typeof(arr.callee) =3D=3D=3D "function" || (arr.item && =
typeof(arr.nodeType) =3D=3D=3D "undefined") && !arr.addEventListener && =
!arr.attachEvent))
            ? arr : [arr];
        for (var i =3D start||0, l =3D arr.length; i < l; i++) {
            if (callback(arr[i], i)) {
                cancelled =3D true;
                break;
            }
        }
    }
    return !cancelled;
}
var callIf =3D function _callIf(obj, name, args) {
    var fn =3D obj[name],
        exists =3D typeof(fn) =3D=3D=3D "function";
    if (exists) fn.call(obj, args);
    return exists;
}
if (!Sys || !Sys.loader) {
    function append(target) {
        target =3D target || {};
        foreach(arguments, function(o) {
            if (o) {
                forIn(o, function(v, n) {
                    if (typeof(target[n]) =3D=3D=3D "undefined") =
target[n] =3D v;
                });
            }
        }, 1);
        return target;
    }

    var attachEvent =3D !!document.attachEvent;
 =20
    function getAndDelete(obj, field) {
        var r =3D obj[field];
        delete obj[field];
        return r;
    }
    function foreachCall(obj, field, args) {
        foreach(getAndDelete(obj, field), function(callback) {
            callback.apply(null, args||[]);
        });
    }
    function lazyget(obj, name, value) {
        return obj ? (obj[name] =3D obj[name] || value) : value;
    }
    function lazypush(obj, name, value) {
        lazyget(obj, name, []).push(value);
    }
    function lazyset(obj, name, key, value) {
        lazyget(obj, name, {})[key] =3D value;
    }
    function all(tag, element) {
        return (element||document).getElementsByTagName(tag);
    }
    function createElement(tag) {
        return document.createElement(tag);
    }
    function listenOnce(target, name, ieName, callback, isReadyState, =
isScript) {
        function onEvent() {
            if (!attachEvent || !isReadyState || =
/loaded|complete/.test(target.readyState)) {
                if (attachEvent) {
                    target.detachEvent(ieName || ("on" + name), =
onEvent);
                }
                else {
                    target.removeEventListener(name, onEvent, false);
                    if (isScript) {
                        target.removeEventListener("error", onEvent, =
false);
                    }
                }
                callback.apply(target);
                target =3D null;
            }
        }
        if (attachEvent) {
            target.attachEvent(ieName || ("on" + name), onEvent);
        }
        else {
            if (target.addEventListener) {
            target.addEventListener(name, onEvent, false);
            }
            if (isScript) {
                target.addEventListener("error", onEvent, false);
            }
        }
    }
    function raiseDomReady() {
        if (Sys._domReady) {
            Sys._2Pass(getAndDelete(Sys, "_domReadyQueue"));
        }
    }
    function raiseOnReady() {
        var ready =3D Sys._ready;
        if (!ready && Sys._domReady && !(Sys.loader && =
Sys.loader._loading)) {
            Sys._ready =3D ready =3D true;
        }
        if (ready) {
            Sys._2Pass(getAndDelete(Sys, "_readyQueue"));
        }
    }
    window.Sys =3D Sys =3D append(Sys, {
        version: [3, 0, 31106, 0],
        __namespace: true,
        debug: true,
        scripts: {},
        activateDom: true,
        composites: {},
        components: {},
        plugins: {},
        create: {},
        converters: {},
        _domLoaded: function _domLoaded() {
            if (Sys._domChecked) return;
            Sys._domChecked =3D true;
            function domReady() {
                if (!Sys._domReady) {
                    Sys._domReady =3D true;
                    var autoRequire =3D Sys._autoRequire;
                    if (autoRequire) {
                        Sys.require(autoRequire, function() {
                            Sys._autoRequire =3D null;
                            foreachCall(Sys, "_autoQueue");
                        }, autoToken);
                    }
                    raiseDomReady();
                    raiseOnReady();
                }
            }
            listenOnce(window, "load", null, domReady);

            var check;
            if (attachEvent) {
                if ((window =3D=3D window.top) && =
document.documentElement.doScroll) {
                    var timeout, er, el =3D createElement("div");
                    check =3D function() {
                        try {
                            el.doScroll("left");
                        }
                        catch (er) {
                            timeout =3D window.setTimeout(check, 0);
                            return;
                        }
                        el =3D null;
                        domReady();
                    }
                    check();
                }
                else {
                    listenOnce(document, null, "onreadystatechange", =
domReady, true);
                }
            }
            else if (document.addEventListener) {
                listenOnce(document, "DOMContentLoaded", null, =
domReady);
            }
        },
        _getById: function _getById(found, id, single, includeSelf, =
element, filter) {
            if (element) {
                if (includeSelf && (element.id =3D=3D=3D id)) {
                    found.push(element);
                }
                else if (!filter) {
                    foreach(all("*", element), function(element) {
                        if (element.id =3D=3D=3D id) {
                            found.push(element);
                            return true;
                        }
                    });
                }
            }
            else {
                var e =3D document.getElementById(id);
                if (e) found.push(e);
            }
            return found.length;
        },
        _getByClass: function _getByClass(found, targetClass, single, =
includeSelf, element, filter) {
            function pushIfMatch(element) {
                var ret, className =3D element.className;
                if (className && ((className =3D=3D=3D targetClass) || =
(className.indexOf(' ' + targetClass) >=3D 0) || =
(className.indexOf(targetClass + ' ') >=3D 0))) {
                    found.push(element);
                    ret =3D true;
                }
                return ret;
            }
            var i, l, nodes;
            if (includeSelf && pushIfMatch(element) && single) {
                return true;
            }
            if (!filter) {
                element =3D element || document;
                var finder =3D element.querySelectorAll || =
element.getElementsByClassName;
                if (finder) {
                    if (element.querySelectorAll) targetClass =3D "." + =
targetClass;
                    nodes =3D finder.call(element, targetClass);
                    for (i =3D 0, l =3D nodes.length; i < l; i++) {
                        found.push(nodes[i]);
                        if (single) return true;
                    }
                }
                else {
                    nodes =3D all("*", element);
                    for (i =3D 0, l =3D nodes.length; i < l; i++) {
                        if (pushIfMatch(nodes[i]) && single) {
                            return true;
                        }
                    }
                }
            }
        },
        query: function query(selector, context) {
            /// <summary>Queries the DOM for a set of DOM =
elements.</summary>
            /// <validationOptions enabled=3D"false" />
            /// <param name=3D"selector">Selector for a set of DOM =
elements based on id (#&lt;id>), class (.&lt;name>), or tag name =
(&lt;tagname>). Also supports an array of DOM elements or selectors. =
More complex selectors may be used if jQuery is loaded.</param>
            /// <param name=3D"context" optional=3D"true" =
mayBeNull=3D"true">A DOM element (exclusive), array of DOM elements =
(inclusive), or other Sys.ElementSet or Sys.UI.TemplateContext =
(exclusive) to restrict the search within.</param>
            /// <returns type=3D"Sys.ElementSet">An object representing =
the set of matching elements.</returns>
            return new Sys.ElementSet(selector, context);
        },
        get: function get(selector, context) {
            /// <summary>Queries the DOM for a single DOM =
element.</summary>
            /// <validationOptions enabled=3D"false" />
            /// <param name=3D"selector">
            /// Selector for a DOM element based on id (#&lt;id>), class =
(.&lt;name>), or tag name (&lt;tagname>). More complex selectors may be =
used if jQuery is loaded.
            /// If multiple elements match the selector, the first one =
is returned.
            /// </param>
            /// <param name=3D"context" optional=3D"true" =
mayBeNull=3D"true">An element, array of elements, or =
Sys.UI.TemplateContext to restrict the query within.</param>
            /// <returns>The matching element, or null if none =
match.</returns>
            return (context && typeof(context.get) =3D=3D=3D "function") =
?
                context.get(selector) :
                this._find(selector, context, true);
        },
        _find: function _find(selector, context, single, filter) {
            var found =3D [],
                selectors;
            if (typeof(selector) =3D=3D=3D "string") {
                selectors =3D [selector];
            }
            else {
                selectors =3D selector;
            }
            var includeSelf =3D context instanceof Array,
                simpleNonTag =3D /^([\$#\.])((\w|[$:\.\-])+)$/,
                tag =3D /^((\w+)|\*)$/;
            if ((typeof(context) =3D=3D=3D "string") || (context =
instanceof Array)) {
                context =3D Sys._find(context);
            }
            if (context instanceof Sys.ElementSet) {
                context =3D context.get();
            }
            foreach(selectors, function(selector) {
                if (typeof(selector) !=3D=3D "string") {
                    if (filter) {
                        if (contains(context, selector)) {
                            found.push(selector);
                        }
                    }
                    else {
                        found.push(selector);
                    }
                }
                else {
                    var match =3D simpleNonTag.exec(selector);
                    if (match && match.length =3D=3D=3D 4) {
                        selector =3D match[2];
                        var type =3D match[1];
                        if (type =3D=3D=3D "$") {
                            Sys._getComponent(found, selector, context);
                        }
                        else {
                            var finder =3D type =3D=3D=3D "#" ? =
Sys._getById : Sys._getByClass;
                            if (context) {
                                foreach(context, function(node) {
                                    if (node.nodeType =3D=3D=3D 1) {
                                        return finder(found, selector, =
single, includeSelf, node, filter);
                                    }
                                });
                            }
                            else {
                                finder(found, selector, single);
                            }
                        }
                    }
                    else if (tag.test(selector)) {
                        if (context instanceof Array) {
                            foreach(context, function(node) {
                                if (node.nodeType =3D=3D=3D 1) {
                                    if (includeSelf && (selector =
=3D=3D=3D "*" || (node.tagName.toLowerCase() =3D=3D=3D selector))) {
                                        found.push(node);
                                        if (single) return true;
                                    }
                                    if (!filter) {
                                        if(!foreach(all(selector, node), =
function(node) {
                                            found.push(node);
                                            if (single) return true;
                                        })) {
                                            return true;
                                        }
                                    }
                                }
                            });
                        }
                        else {
                            var nodes =3D all(selector, context);
                            if (single) {
                                if (nodes[0]) {
                                    found.push(nodes[0]);
                                }
                                return true;
                            }
                            foreach(nodes, function(node) {
                                found.push(node);
                            });
                        }
                    }
                    else if (window.jQuery) {
                        if (!filter) {
                            found.push.apply(found, jQuery(selector, =
context).get());
                        }
                        if (includeSelf) {
                            found.push.apply(found, =
jQuery(context).filter(selector).get());
                        }
                    }
                }
            });
            return found.length ? (single ? (found[0] || null) : found) =
: null;
        },
        onDomReady: function onDomReady(callback) {
            /// <summary>Registers a function to be called when the DOM =
is ready.</summary>
            /// <validationOptions enabled=3D"false" />
            /// <param name=3D"callback" type=3D"Function"></param>
            lazypush(this, "_domReadyQueue", callback);
            raiseDomReady();
        },
        onReady: function onReady(callback) {
            /// <summary>Registers a function to be called when the DOM =
is ready and when all required resources have been loaded.</summary>
            /// <validationOptions enabled=3D"false" />
            /// <param name=3D"callback" type=3D"Function"></param>
            lazypush(this, "_readyQueue", callback);
            raiseOnReady();
        },
        _set: function(instance, properties) {
            forIn(properties, function(value, field) {
                callIf(instance, "add_" + field, value) ||
                callIf(instance, "set_" + field, value) ||
                (instance[field] =3D value);
            });
        }
    });

    Sys._getComponent =3D Sys._getComponent || function() { }
   =20
    Sys._2Pass =3D Sys._2Pass || function _2Pass(callback) {
       foreach(callback, function(c) { c(); });
    }

    var obj;
    if (!Sys.ElementSet) {
obj =3D Sys.ElementSet =3D function(selector, context) {
    /// <summary>Represents a set of DOM elements.</summary>
    /// <param name=3D"selector">The DOM selector, array of DOM =
selectors, or array of DOM elements to query the document for.</param>
    /// <param name=3D"context">A DOM selector (exclusive), A DOM =
element (exclusive), array of DOM elements (inclusive), or other =
Sys.ElementSet (exclusive) to restrict the search within.</param>
    this._elements =3D ((typeof(context) =3D=3D=3D "object") && =
typeof(context.query) =3D=3D=3D "function") ?
        context.query(selector).get() :
        Sys._find(selector, context) || [];
}
obj.prototype =3D {
    __class: true,
    components: function(type, index) {
        /// <summary>Gets the set of controls and behaviors associated =
with the current DOM elements.</summary>
        /// <param name=3D"type" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true">Type to limit the search to.</param>
        /// <param name=3D"index" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">Index of the component to limit to.</param>
        /// <returns type=3D"Sys.ComponentSet" />
        var elementSet =3D new Sys.ElementSet(this.get());
        return new Sys.ComponentSet(elementSet, type, index);
    },
    component: function(type, index) {
        /// <summary>Get the first control or behavior associated with =
the current set of DOM elements.</summary>
        /// <param name=3D"type" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true">Type to limit the search to.</param>
        /// <param name=3D"index" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">Index of the component to return.</param>
        /// <returns type=3D"Object" mayBeNull=3D"true" />
        return this.components(type, index).get(0);
    },
    each: function(callback) {
        /// <summary>Enumerates all the matched elements, calling the =
given callback for each with the current element as the context.
        /// The callback may return false to cancel =
enumeration.</summary>
        /// <returns type=3D"Sys.ElementSet"/>
        var elements =3D this._elements;
        for (var i =3D 0, l =3D elements.length; i < l; i++) {
            if (callback.call(elements[i], i) =3D=3D=3D false) break;
        }
        return this;
    },
    get: function(index) {
        /// <summary>Retrieves the element at the specified =
index.</summary>
        /// <param name=3D"index" type=3D"Number">The index of the =
element to retrieve. Omit to return all elements as an array.</param>
        /// <returns isDomElement=3D"true">The element at the given =
index, or an array of all the matched elements.</returns>
        var elements =3D this._elements;
        return (typeof(index) =3D=3D=3D "undefined") ? =
(Array.apply(null, elements)) : (elements[index] || null);
    },
    find: function(selector) {
        /// <summary>Searches the current set of DOM elements with the =
given selector, including descendents.</summary>
        /// <param name=3D"selector">DOM selector or array of DOM =
selectors to search with.</param>
        /// <returns type=3D"Sys.ElementSet">A new element set with the =
matched elements.</returns>
        return new Sys.ElementSet(selector, this);
    },
    filter: function(selector) {
        /// <summary>Filters the current set of DOM elements by the =
given selector, excluding descendents.</summary>
        /// <param name=3D"selector">DOM selector or array of elements =
to filter by.</param>
        /// <returns type=3D"Sys.ElementSet">A new element set with the =
matched elements.</returns>
        return new Sys.ElementSet(Sys._find(selector, this._elements, =
false, true));
    }
}
    }
    if (!Sys.ComponentSet) {
obj =3D Sys.ComponentSet =3D function ComponentSet(elementSet, query, =
index) {
    /// <summary></summary>
    /// <param name=3D"elementSet" type=3D"Sys.ElementSet" =
mayBeNull=3D"true" optional=3D"true"></param>
    /// <param name=3D"query" mayBeNull=3D"true" optional=3D"true">The =
type of component to filter by, or an array of components to =
include.</param>
    /// <param name=3D"index" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true">The index of the component to retrieve from the =
filtered list.</param>
    this._elementSet =3D elementSet || (elementSet =3D new =
Sys.ElementSet());
    this._components =3D this._execute(elementSet, query, index);
}
obj.prototype =3D {
    __class: true,
    setProperties: function ComponentSet$setProperties(properties) {
        /// <summary>Sets properties on the matched =
components.</summary>
        /// <param name=3D"properties" type=3D"Object" =
mayBeNull=3D"false">Object with the names and values of the properties =
to set.</param>
        /// <returns type=3D"Sys.ComponentSet" />
        return this.each(function() {
            Sys._set(this, properties);
        });
    },
    get: function ComponentSet$get(index) {
        /// <summary>Returns the component at the specified index, or an =
array of all matches if not specified.</summary>
        /// <param name=3D"index" type=3D"Number" mayBeNull=3D"true" =
optional=3D"true"></param>
        /// <returns type=3D"Object" mayBeNull=3D"true"/>
        var components =3D this._components;
        return (typeof(index) =3D=3D=3D "undefined") ? =
(Array.apply(null, components)) : (components[index || 0] || null);
    },
    each: function ComponentSet$each(callback) {
        /// <summary>Enumerate all the found components. The index of =
the component are passed as parameters to a callback. You may return =
'false' to cancel the enumeration.</summary>
        /// <param name=3D"callback" type=3D"Function" =
mayBeNull=3D"false">Function called for each component.</param>
        /// <returns type=3D"Sys.ComponentSet" />
        foreach(this._components, function(c, i) {
            if (callback.call(c, i) =3D=3D=3D false) {
                return true;
            }
        });
        return this;
    },
    elements: function ComponentSet$elements() {
        /// <summary>Returns the underlying set of elements this =
component collection came from.</summary>
        /// <returns type=3D"Sys.ElementSet" />
        return this._elementSet;
    },
    _execute: function ComponentSet$_execute(elementSet, query, index) {
        var components =3D [];
        function match(c) {
            var ctor;
            return (c instanceof query) ||
                ((ctor =3D c.constructor) && (
                    (ctor =3D=3D=3D query) ||
                    (ctor.inheritsFrom && ctor.inheritsFrom(query)) ||
                    (ctor.implementsInterface && =
ctor.implementsInterface(query))));
        }
        if (query instanceof Array) {
            components.push.apply(components, query);
        }
        else {
            elementSet.each(function() {
                var c =3D this.control;
                if (c && (!query || match(c))) {
                    components.push(c);
                }
                foreach(this._behaviors, function(b) {
                    if (!query || match(b)) {
                        components.push(b);
                    }
                });
            });
        }
        if ((typeof(index) !=3D=3D "undefined")) {
            if (components[index]) {
                components =3D [components[index]];
            }
            else {
                components =3D [];
            }
        }
        return components;
    }
}
    }
   =20
    obj =3D null;
}
    var getCreate =3D function _getCreate(options, isPlugin) {
        var body =3D [],
            arglist =3D [],
            type =3D options.type,
            typeName =3D options.typeName || (type ? type.getName() : =
""),
            isBehavior =3D options._isBehavior,
            description =3D (options && options.description) ||=20
                          (type && ("Creates an instance of the type '" =
+ typeName  + "' and sets the given properties.")) ||
                          "";
        body.push("/// <summary>", description, "</summary>\n");
        foreach(options && options.parameters, function(parameter) {
            var name =3D parameter, type =3D '', desc =3D '';
            if (typeof(parameter) !=3D=3D "string") {
                name =3D parameter.name;
                type =3D parameter.type||'';
                desc =3D parameter.description||'';
            }
            arglist.push(name);
            body.push('/// <param name=3D"', name, '"');
            if (type) {
                body.push(' type=3D"', type, '"');
            }
            body.push('>', desc, '</param>\n');
        });
        var returnType;
        if (!isPlugin) {
            arglist.push("properties");
            body.push('/// <param name=3D"properties" type=3D"Object" =
mayBeNull=3D"true" optional=3D"true">Additional properties to set on the =
component.</param>\n');
            returnType =3D isBehavior ? 'Sys.ComponentSet' : typeName;
        }
        else {
            returnType =3D options.returnType;
        }
        if (returnType) {
            body.push('/// <returns type=3D"', returnType, '" />\n');
        }
        if (isPlugin) {
            body.push('return Sys.plugins["', options.name, =
'"].plugin.apply(this, arguments);');
        }
        else {
            body.push('return Sys._createComp.call(this, =
arguments.callee._component, arguments.callee._component.defaults, =
arguments);');
        }
        arglist.push(body.join(''));
   =20
        var fn =3D Function.apply(null, arglist);
        if (!isPlugin) {
            fn._component =3D options;
        }
        return fn;
       =20
    }
    Sys._getCreate =3D getCreate;

function execute() {

var $type, $prototype;
Sys._foreach =3D foreach;
Sys._forIn =3D forIn;
Sys._merge =3D merge;
Sys._callIf =3D callIf;

$type =3D Function;
$type.__typeName =3D 'Function';
$type.__class =3D true;

$type.createCallback =3D function Function$createCallback(method, =
context) {
    /// <summary locid=3D"M:J#Function.createCallback">Creates a =
callback function that retains the parameter initially used during its =
creation.   The callback is used without parameter but this will call =
the actual method with the parameter.   This is especially useful when =
setting up a handler for a DOM event that must retain a parameter   =
despite the DOM event handler needing to be a function with the event =
object as the only parameter.   In this case, the function will be =
called with the event as the first parameter and the context   as the =
second.   If the callback is called with an arbitrary list of =
parameters, the context is appended.</summary>
    /// <param name=3D"method" type=3D"Function">The function for which =
the callback is created.</param>
    /// <param name=3D"context" mayBeNull=3D"true">The parameter for the =
function.</param>
    /// <returns type=3D"Function">The callback 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);
    }
}

$type.createDelegate =3D function Function$createDelegate(instance, =
method) {
    /// <summary locid=3D"M:J#Function.createDelegate">Creates a =
delegate function that retains the context from its creation   (i.e. =
what 'this' means from within its scope).   This is especially useful =
when setting up an event handler to point to an object method   that =
needs to use the 'this' pointer from within its scope.</summary>
    /// <param name=3D"instance" mayBeNull=3D"true">The object instance =
that will be the context for the function (i.e. what 'this' means from =
within its scope).</param>
    /// <param name=3D"method" type=3D"Function">The function from which =
the delegate is created.</param>
    /// <returns type=3D"Function">The delegate 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);
    }
}

$type.emptyFunction =3D $type.emptyMethod =3D function =
Function$emptyMethod() {
    /// <summary locid=3D"M:J#Function.emptyMethod">A function that does =
nothing.</summary>
}

$type.validateParameters =3D function =
Function$validateParameters(parameters, expectedParameters, =
validateParameterCount) {
    /// <summary locid=3D"M:J#Function.validateParameters">Validates the =
parameters to a method are as expected.</summary>
    /// <param name=3D"parameters"></param>
    /// <param name=3D"expectedParameters"></param>
    /// <param name=3D"validateParameterCount" type=3D"Boolean" =
optional=3D"true" mayBeNull=3D"true">True if extra parameters are =
prohibited, false if they should be ignored. The default is =
true.</param>
    /// <returns type=3D"Error" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "parameters"},
        {name: "expectedParameters"},
        {name: "validateParameterCount", type: Boolean, mayBeNull: true, =
optional: true}
    ]);
    if (e) throw e;
    return Function._validateParams(parameters, expectedParameters, =
validateParameterCount);
}

$type._validateParams =3D function Function$_validateParams(params, =
expectedParams, validateParameterCount) {
    var e, expectedLength =3D expectedParams.length;
    validateParameterCount =3D validateParameterCount !=3D=3D false;
    e =3D Function._validateParameterCount(params, expectedParams, =
validateParameterCount);
    if (e) {
        e.popStackFrame();
        return e;
    }
    for (var i =3D 0, l =3D params.length; i < l; i++) {
        var expectedParam =3D expectedParams[Math.min(i, expectedLength =
- 1)],
            paramName =3D expectedParam.name;
        if (expectedParam.parameterArray) {
            paramName +=3D "[" + (i - expectedLength + 1) + "]";
        }
        else if (!validateParameterCount && (i >=3D expectedLength)) {
            break;
        }
        e =3D Function._validateParameter(params[i], expectedParam, =
paramName);
        if (e) {
            e.popStackFrame();
            return e;
        }
    }
    return null;
}

$type._validateParameterCount =3D function =
Function$_validateParameterCount(params, expectedParams, =
validateParameterCount) {
    var i, error,
        expectedLen =3D expectedParams.length,
        actualLen =3D params.length;
    if (actualLen < expectedLen) {
        var minParams =3D expectedLen;
        for (i =3D 0; i < expectedLen; i++) {
            var param =3D expectedParams[i];
            if (param.optional || param.parameterArray) {
                minParams--;
            }
        }       =20
        if (actualLen < minParams) {
            error =3D true;
        }
    }
    else if (validateParameterCount && (actualLen > expectedLen)) {
        error =3D true;     =20
        for (i =3D 0; i < expectedLen; i++) {
            if (expectedParams[i].parameterArray) {
                error =3D false;
                break;
            }
        } =20
    }

    if (error) {
        var e =3D Error.parameterCount();
        e.popStackFrame();
        return e;
    }

    return null;
}

$type._validateParameter =3D function Function$_validateParameter(param, =
expectedParam, paramName) {
    var e,
        expectedType =3D expectedParam.type,
        expectedInteger =3D !!expectedParam.integer,
        expectedDomElement =3D !!expectedParam.domElement,
        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,
        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,
            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;
}

$type._validateParameterType =3D function =
Function$_validateParameterType(param, expectedType, expectedInteger, =
expectedDomElement, mayBeNull, paramName) {
    var e, i;

    if (typeof(param) =3D=3D=3D "undefined" || param =3D=3D=3D null) {
        if (mayBeNull) {
            return null;
        }
        e =3D param =3D=3D=3D null ? Error.argumentNull(paramName) : =
Error.argumentUndefined(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 (i in values) {
                    if (values[i] =3D=3D=3D param) return null;
                }
            }
            else {
                var v =3D param;
                for (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 && (!Sys._isDomElement(param) || =
(param.nodeType =3D=3D=3D 3))) {
        e =3D Error.argument(paramName, Sys.Res.argumentDomElement);
        e.popStackFrame();
        return e;
    }

    if (expectedType && !Sys._isInstanceOfType(expectedType, 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;
}
$type =3D Error;
$type.__typeName =3D 'Error';
$type.__class =3D true;

Sys._errorArgument =3D function(kind, paramName, message) {
    var name =3D "Sys.Argument" + kind + "Exception";
    var displayMessage =3D name + ": " + (message || =
Sys.Res["argument"+kind]);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }

    var err =3D Error.create(displayMessage, { name: name, paramName: =
paramName });
    err.popStackFrame();
    err.popStackFrame();
    return err;
}

Sys._error =3D function(kind, message, defaultMessage) {
    var name =3D "Sys." + kind + "Exception";
    var displayMessage =3D name + ": " + (message || =
Sys.Res[defaultMessage]);
    var err =3D Error.create(displayMessage, {name: name});
    err.popStackFrame();
    err.popStackFrame();
    return err;
}

$type.create =3D function Error$create(message, errorInfo) {
    /// <summary locid=3D"M:J#Error.create">Use this method to create a =
new error.</summary>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The error message.</param>
    /// <param name=3D"errorInfo" optional=3D"true" mayBeNull=3D"true">A =
plain JavaScript object that contains extended information about the =
error.   The object should have a 'name' field that contains a string =
that identifies the error   and any additional fields that are necessary =
to fully describe the error.</param>
    /// <returns type=3D"Error">An Error object.</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 err =3D new Error(message);
    err.message =3D message;

    if (errorInfo) {
        for (var v in errorInfo) {
            err[v] =3D errorInfo[v];
        }
    }

    err.popStackFrame();
    return err;
}

$type.argument =3D function Error$argument(paramName, message) {
    /// <summary locid=3D"M:J#Error.argument">Creates an =
ArgumentException with a specified error message   and the name of the =
parameter that caused this exception.</summary>
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The name of the parameter that caused the =
exception.</param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message that describes the error.</param>
    /// <returns>An Error instance that represents an =
ArgumentException.</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;
    return Sys._errorArgument("", paramName, message);
}

$type.argumentNull =3D function Error$argumentNull(paramName, message) {
    /// <summary locid=3D"M:J#Error.argumentNull">Creates an =
ArgumentNullException with a specified error message   and the name of =
the parameter that caused this exception.</summary>
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The name of the parameter that caused the =
exception.</param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message that describes the error.</param>
    /// <returns>An Error instance that represents an =
ArgumentNullException.</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;
    return Sys._errorArgument("Null", paramName, message);
}

$type.argumentOutOfRange =3D function =
Error$argumentOutOfRange(paramName, actualValue, message) {
    /// <summary locid=3D"M:J#Error.argumentOutOfRange">Creates an =
ArgumentOutOfRangeException with a specified error message   and the =
name and actual value of the parameter that caused this =
exception.</summary>
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The name of the parameter that caused the =
exception.</param>
    /// <param name=3D"actualValue" optional=3D"true" =
mayBeNull=3D"true">The actual value of the parameter.</param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message that describes the error.</param>
    /// <returns>An Error instance that represents an =
ArgumentOutOfRangeException.</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 || 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 err =3D Error.create(displayMessage, {
        name: "Sys.ArgumentOutOfRangeException",
        paramName: paramName,
        actualValue: actualValue
    });
    err.popStackFrame();
    return err;
}

$type.argumentType =3D function Error$argumentType(paramName, =
actualType, expectedType, message) {
    /// <summary locid=3D"M:J#Error.argumentType">Creates an =
ArgumentTypeException with a specified error message   and the name, =
actual type, and expected type of the parameter that   caused this =
exception.</summary>
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The name of the parameter that caused the =
exception.</param>
    /// <param name=3D"actualType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true">The actual type of the parameter value.</param>
    /// <param name=3D"expectedType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true">The expected type of the parameter value.</param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message that describes the error.</param>
    /// <returns>An Error instance that represents an =
ArgumentTypeException.</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 err =3D Error.create(displayMessage, {
        name: "Sys.ArgumentTypeException",
        paramName: paramName,
        actualType: actualType,
        expectedType: expectedType
    });
    err.popStackFrame();
    return err;
}

$type.argumentUndefined =3D function Error$argumentUndefined(paramName, =
message) {
    /// <summary locid=3D"M:J#Error.argumentUndefined">Creates an =
ArgumentUndefinedException with a specified error message   and the name =
of the parameter that caused this exception.</summary>
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The name of the parameter that caused the =
exception.</param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message that describes the error.</param>
    /// <returns>An Error instance that represents an =
ArgumentUndefinedException.</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;
    return Sys._errorArgument("Undefined", paramName, message);
}

$type.format =3D function Error$format(message) {
    /// <summary locid=3D"M:J#Error.format">Creates a format =
error.</summary>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The error message.</param>
    /// <returns>An Error object that represents a =
FormatException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    return Sys._error("Format", message, "format");
}

$type.invalidOperation =3D function Error$invalidOperation(message) {
    /// <summary locid=3D"M:J#Error.invalidOperation">Creates an invalid =
operation error.</summary>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The error message.</param>
    /// <returns>An Error instance that represents an =
InvalidOperationException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    return Sys._error("InvalidOperation", message, "invalidOperation");
}

$type.notImplemented =3D function Error$notImplemented(message) {
    /// <summary locid=3D"M:J#Error.notImplemented">Creates a not =
implemented error.</summary>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The error message.</param>
    /// <returns>An Error instance that represents a =
NotImplementedException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    return Sys._error("NotImplemented", message, "notImplemented");
}

$type.parameterCount =3D function Error$parameterCount(message) {
    /// <summary locid=3D"M:J#Error.parameterCount">Creates a =
ParameterCountException with a specified error message.</summary>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message that describes the error.</param>
    /// <returns>An Error instance that represents a =
ParameterCountException.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    return Sys._error("ParameterCount", message, "parameterCount");
}

$type.prototype.popStackFrame =3D function Error$popStackFrame() {
    /// <summary locid=3D"M:J#checkParam">Updates the fileName and =
lineNumber fields based on the next frame in the   stack trace. Call =
this method whenever an instance of Error is returned   from a function. =
This makes the fileName and lineNumber reported in the   FireFox console =
point to the location where the exception was thrown, not   the location =
where the instance of Error was created.</summary>
    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) < 0) {
        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");
}
$type =3D Object;
$type.__typeName =3D 'Object';
$type.__class =3D true;

$type.getType =3D function Object$getType(instance) {
    /// <summary locid=3D"M:J#Object.getType"></summary>
    /// <param name=3D"instance">The object for which the type must be =
returned.</param>
    /// <returns type=3D"Type">The type of the object.</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;
}

$type.getTypeName =3D function Object$getTypeName(instance) {
    /// <summary locid=3D"M:J#Object.getTypeName"></summary>
    /// <param name=3D"instance">The object for which the type name must =
be returned.</param>
    /// <returns type=3D"String">The name of the type of the =
object.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"}
    ]);
    if (e) throw e;
    return Object.getType(instance).getName();
}
$type =3D String;
$type.__typeName =3D 'String';
$type.__class =3D true;

$prototype =3D $type.prototype;
$prototype.endsWith =3D function String$endsWith(suffix) {
    /// <summary locid=3D"M:J#String.endsWith">Determines whether the =
end of this instance matches the specified string.</summary>
    /// <param name=3D"suffix" type=3D"String">A string to compare =
to.</param>
    /// <returns type=3D"Boolean">true if suffix matches the end of this =
instance; otherwise, false.</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);
}

$prototype.startsWith =3D function String$startsWith(prefix) {
    /// <summary locid=3D"M:J#String.startsWith">Determines whether the =
beginning of this instance matches the specified string.</summary>
    /// <param name=3D"prefix" type=3D"String">The String to =
compare.</param>
    /// <returns type=3D"Boolean">true if prefix matches the beginning =
of this string; otherwise, false.</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);
}

$prototype.trim =3D function String$trim() {
    /// <summary locid=3D"M:J#String.trim">Removes all leading and =
trailing white-space characters from the current String =
object.</summary>
    /// <returns type=3D"String">The string that remains after all =
white-space characters are removed from the start and end of the current =
String object.</returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/^\s+|\s+$/g, '');
}

$prototype.trimEnd =3D function String$trimEnd() {
    /// <summary locid=3D"M:J#String.trimEnd">Removes all trailing white =
spaces from the current String object.</summary>
    /// <returns type=3D"String">The string that remains after all =
white-space characters are removed from the end of the current String =
object.</returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/\s+$/, '');
}

$prototype.trimStart =3D function String$trimStart() {
    /// <summary locid=3D"M:J#String.trimStart">Removes all leading =
white spaces from the current String object.</summary>
    /// <returns type=3D"String">The string that remains after all =
white-space characters are removed from the start of the current String =
object.</returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/^\s+/, '');
}

$type.format =3D function String$format(format, args) {
    /// <summary locid=3D"M:J#String.format">Replaces the format items =
in a specified String with the text equivalents of the values of   =
corresponding object instances. The invariant culture will be used to =
format dates and numbers.</summary>
    /// <param name=3D"format" type=3D"String">A format string.</param>
    /// <param name=3D"args" parameterArray=3D"true" =
mayBeNull=3D"true">The objects to format.</param>
    /// <returns type=3D"String">A copy of format in which the format =
items have been replaced by the   string equivalent of the corresponding =
instances of object arguments.</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);
}

$type._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;
}
$type =3D Boolean;
$type.__typeName =3D 'Boolean';
$type.__class =3D true;

$type.parse =3D function Boolean$parse(value) {
    /// <summary locid=3D"M:J#Boolean.parse">Creates a bool from its =
string representation.</summary>
    /// <param name=3D"value" type=3D"String">"true" or "false".</param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ], false);
    if (e) throw e;
    var v =3D value.trim().toLowerCase(),
        r;
    if (v =3D=3D=3D 'false') {
        r =3D false;
    }
    else if (v =3D=3D=3D 'true') {
        r =3D true;
    }
    else {
        throw Error.argumentOutOfRange('value', value, =
Sys.Res.boolTrueOrFalse);
    }
    return r;
}
$type =3D Date;
$type.__typeName =3D 'Date';
$type.__class =3D true;
$type =3D Number;
$type.__typeName =3D 'Number';
$type.__class =3D true;
$type =3D RegExp;
$type.__typeName =3D 'RegExp';
$type.__class =3D true;
if (!window) this.window =3D this;

window.Type =3D $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");

$prototype =3D $type.prototype;
$prototype.callBaseMethod =3D function Type$callBaseMethod(instance, =
name, baseArguments) {
    /// <summary locid=3D"M:J#Type.callBaseMethod"></summary>
    /// <param name=3D"instance">The instance for the base method. =
Usually 'this'.</param>
    /// <param name=3D"name" type=3D"String">The name of the base =
method.</param>
    /// <param name=3D"baseArguments" type=3D"Array" optional=3D"true" =
mayBeNull=3D"true" elementMayBeNull=3D"true">The arguments to pass to =
the base method.</param>
    /// <returns>The return value of the base method.</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 Sys._getBaseMethod(this, instance, name);
    if (!baseMethod) throw =
Error.invalidOperation(String.format(Sys.Res.methodNotFound, name));
    return baseArguments ? baseMethod.apply(instance, baseArguments) : =
baseMethod.apply(instance);
}

$prototype.getBaseMethod =3D function Type$getBaseMethod(instance, name) =
{
    /// <summary locid=3D"M:J#Type.getBaseMethod">Use this method to get =
the base implementation of a method from the base class.</summary>
    /// <param name=3D"instance">The instance for which the base method =
is needed. Usually 'this'.</param>
    /// <param name=3D"name" type=3D"String">The name of the method to =
get.</param>
    /// <returns type=3D"Function" mayBeNull=3D"true">The base =
method.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "name", type: String}
    ]);
    if (e) throw e;
    return Sys._getBaseMethod(this, instance, name);
}

$prototype.getBaseType =3D function Type$getBaseType() {
    /// <summary locid=3D"M:J#Type.getBaseType"></summary>
    /// <returns type=3D"Type" mayBeNull=3D"true">The base =
type.</returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return (typeof(this.__baseType) =3D=3D=3D "undefined") ? null : =
this.__baseType;
}

$prototype.getInterfaces =3D function Type$getInterfaces() {
    /// <summary locid=3D"M:J#Type.getInterfaces"></summary>
    /// <returns type=3D"Array" elementType=3D"Type" mayBeNull=3D"false" =
elementMayBeNull=3D"false">A copy of the list of interfaces that the =
type implements.</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.push(interfaceType);
                }
            }
        }
        type =3D type.__baseType;
    }
    return result;
}

$prototype.getName =3D function Type$getName() {
    /// <summary locid=3D"M:J#Type.getName"></summary>
    /// <returns type=3D"String">The name of the type.</returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return (typeof(this.__typeName) =3D=3D=3D "undefined") ? "" : =
this.__typeName;
}

$prototype.implementsInterface =3D function =
Type$implementsInterface(interfaceType) {
    /// <summary locid=3D"M:J#Type.implementsInterface"></summary>
    /// <param name=3D"interfaceType" type=3D"Type">The interface to =
test.</param>
    /// <returns type=3D"Boolean">True if the type implements the =
interface.</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 && Array.indexOf(interfaces, interfaceType) =
!=3D=3D -1) {
            return cache[interfaceName] =3D true;
        }

        baseType =3D baseType.__baseType;
    }

    return cache[interfaceName] =3D false;
}

$prototype.inheritsFrom =3D function Type$inheritsFrom(parentType) {
    /// <summary locid=3D"M:J#Type.inheritsFrom"></summary>
    /// <param name=3D"parentType" type=3D"Type">The type to =
test.</param>
    /// <returns type=3D"Boolean">True if the type inherits from =
parentType.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "parentType", type: Type}
    ]);
    if (e) throw e;
    this.resolveInheritance();
    return Sys._inheritsFrom(this, parentType);
}

Sys._inheritsFrom =3D function _inheritsFrom(type, parentType) {
    var ret;
    if (parentType) {
        var baseType =3D type.__baseType;
        while (baseType) {
            if (baseType =3D=3D=3D parentType) {
                ret =3D true;
                break;
            }
            baseType =3D baseType.__baseType;
        }
    }
    return !!ret;
}

$prototype.initializeBase =3D function Type$initializeBase(instance, =
baseArguments) {
    /// <summary locid=3D"M:J#Type.initializeBase">This method =
initializes the base type in the context   of a given instance object =
(to keep track of the base type, and to   effectively inherit the object =
model of the base class, and   initializing members of the base class).  =
 This should be called from the derived class constructor.</summary>
    /// <param name=3D"instance">The object to initialize base types =
for. Usually 'this'.</param>
    /// <param name=3D"baseArguments" type=3D"Array" optional=3D"true" =
mayBeNull=3D"true" elementMayBeNull=3D"true">The arguments for the base =
constructor.</param>
    /// <returns>The instance.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "baseArguments", type: Array, mayBeNull: true, optional: =
true, elementMayBeNull: true}
    ]);
    if (e) throw e;
    if (!Sys._isInstanceOfType(this, instance)) throw =
Error.argumentType('instance', Object.getType(instance), this);

    this.resolveInheritance();
    var baseType =3D this.__baseType;
    if (baseType) {
        baseArguments ? baseType.apply(instance, baseArguments) : =
baseType.apply(instance);
    }

    return instance;
}

$prototype.isImplementedBy =3D function Type$isImplementedBy(instance) {
    /// <summary locid=3D"M:J#Type.isImplementedBy"></summary>
    /// <param name=3D"instance" mayBeNull=3D"true">The object on which =
the interface must be tested.</param>
    /// <returns type=3D"Boolean">True if the instance implements the =
interface.</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));
}

$prototype.isInstanceOfType =3D function Type$isInstanceOfType(instance) =
{
    /// <summary locid=3D"M:J#Type.isInstanceOfType"></summary>
    /// <param name=3D"instance" mayBeNull=3D"true">The object on which =
the type must be tested.</param>
    /// <returns type=3D"Boolean">True if the object is an instance of =
the type or one of its derived types.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true}
    ]);
    if (e) throw e;
    return Sys._isInstanceOfType(this, instance);
}

$prototype.registerClass =3D function Type$registerClass(typeName, =
baseType, interfaceTypes) {
    /// <summary locid=3D"M:J#Type.registerClass">Registers a class =
(represented by its ctor function), and   optional base type, followed =
by any number of interfaces.</summary>
    /// <param name=3D"typeName" type=3D"String">The fully-qualified =
name of the type.</param>
    /// <param name=3D"baseType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true">The base type.</param>
    /// <param name=3D"interfaceTypes" parameterArray=3D"true" =
type=3D"Type">One or several interfaces that the type =
implements.</param>
    /// <returns type=3D"Type">The registered 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');
    var prototype =3D this.prototype;
    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) {
        var interfaces =3D 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 (!prototype[methodName]) {
                    prototype[methodName] =3D method;
                }
            }
            interfaces.push(interfaceType);
        }
    }
    Sys.__registeredTypes[typeName] =3D true;
    return this;
}

Sys.registerComponent =3D function registerComponent(type, options) {
    /// <summary locid=3D"M:J#Sys.registerComponent">Generates a =
create() function for the given type using the optional description and =
parameters for intellisense.</summary>
    /// <param name=3D"type" type=3D"Function">The type to be =
created.</param>
    /// <param name=3D"options" type=3D"Object" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "type", type: Function},
        {name: "options", type: Object, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var typeName =3D type.getName();
    var isControlOrBehavior =3D Sys.UI && (Sys._inheritsFrom(type, =
Sys.UI.Control) || Sys._inheritsFrom(type, Sys.UI.Behavior));
    var name =3D (options && options.name);
    if (!name) {
        name =3D typeName;
        var i =3D name.lastIndexOf('.');
        if (i >=3D 0) {
            name =3D name.substr(i+1);
            if (name && name.charAt(0) =3D=3D=3D "_") return;
        }
        name =3D name.substr(0, 1).toLowerCase() + name.substr(1);
    }
    if (!options) {
        options =3D {};
    }
    options.name =3D name;
    options.type =3D type;
    options.typeName =3D typeName;
    options._isBehavior =3D isControlOrBehavior;
   =20
    options =3D Sys.components[name] =3D merge(Sys.components[name], =
options);

    var fn =3D Sys._getCreate(options),
        target =3D isControlOrBehavior ? Sys.ElementSet.prototype : =
Sys.create;
    target[name] =3D fn;
}

Sys.registerPlugin =3D function registerPlugin(pluginInfo) {
    /// <summary locid=3D"M:J#Sys.registerPlugin"></summary>
    /// <param name=3D"pluginInfo" type=3D"Object">An object describing =
the plugin (name, plugin, dom, global, components)</param>
    var e =3D Function._validateParams(arguments, [
        {name: "pluginInfo", type: Object}
    ]);
    if (e) throw e;
    var name =3D pluginInfo.name,
        fnName =3D pluginInfo.functionName || name;
    Sys.plugins[name] =3D merge(Sys.plugins[name], pluginInfo);
    var plugin =3D pluginInfo.plugin,
        sysTarget;
    if (pluginInfo.global) {
        sysTarget =3D Sys;
    }
    else if (pluginInfo.dom) {
        sysTarget =3D Sys.ElementSet.prototype;
    }
    else if (pluginInfo.components) {
        sysTarget =3D Sys.ComponentSet.prototype;
    }
    if (sysTarget) {
        sysTarget[fnName] =3D Sys._getCreate(pluginInfo, true);
    }
}

Sys._createComp =3D function _createComp(component, defaults, args) {
    var type =3D component.type,
        parameters =3D component.parameters || [],
        isBehavior =3D component._isBehavior,
        target =3D isBehavior ? args[0] : null;
    var props =3D args[parameters.length] || {};
    props =3D merge({}, defaults, props);
    foreach(parameters, function(parameter, i) {
        var name =3D typeof(parameter) =3D=3D=3D "string" ? parameter : =
parameter.name,
            value =3D args[i];
        if (typeof(value) !=3D=3D "undefined" && typeof(props[name]) =
=3D=3D=3D "undefined") {
            props[name] =3D value;
        }
    });
    if (this instanceof Sys.ElementSet) {
        var components =3D [];
        this.each(function() {
            components.push(Sys._create(type, props, this));
        });
        return new Sys.ComponentSet(this, components);
    }
    else {
        return Sys._create(type, props);
    }
}

Sys._create =3D function _create(type, properties, target) {
    var targetType =3D typeof(target);
    if (targetType =3D=3D=3D "string") {
        target =3D Sys.get(target);
    }
    var instance;
    Sys._2Pass(function() {
        instance =3D targetType =3D=3D=3D "undefined" ? new type() : new =
type(target);
        callIf(instance, "beginUpdate");
        Sys._set(instance, properties);
        var componentType =3D Sys.Component;
        if (!componentType || !componentType._register(instance)) {
            callIf(instance, "endUpdate") || callIf(instance, =
"initialize");
        }
    });   =20
    return instance;
}

$prototype.registerInterface =3D function =
Type$registerInterface(typeName) {
    /// <summary locid=3D"M:J#Type.registerInterface">Registers an =
interface (represented by its ctor function).</summary>
    /// <param name=3D"typeName" type=3D"String">The fully-qualified =
name of the interface.</param>
    /// <returns type=3D"Type">The registered interface.</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;
}

$prototype.resolveInheritance =3D function Type$resolveInheritance() {
    /// <summary locid=3D"M:J#Type.resolveInheritance">This method is =
called on the ctor function instance. It does three things: 1. It stores =
__baseType as a property of the constructor function 2. It copies =
members from the baseType's prototype into the  prototype associated =
with the type represented by this ctor,  if this type itself doesn't =
have the same member in its prototype,  i.e., it doesn't override the =
method. 3. It recurses up the inheritance chain to do the same for the =
base type.  Note that this logic runs only once per type, because it  is =
based on true value for __basePrototypePending property  off the ctor =
function.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();

    if (this.__basePrototypePending) {
        var baseType =3D this.__baseType;

        baseType.resolveInheritance();
        var basePrototype =3D baseType.prototype,
            thisPrototype =3D this.prototype;
        for (var memberName in basePrototype) {
            thisPrototype[memberName] =3D thisPrototype[memberName] || =
basePrototype[memberName];
        }
        delete this.__basePrototypePending;
    }
}

$type.getRootNamespaces =3D function Type$getRootNamespaces() {
    /// <summary locid=3D"M:J#Type.getRootNamespaces"></summary>
    /// <returns type=3D"Array">Returns an array containing references =
to all the root namespaces</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"></summary>
    /// <param name=3D"type" mayBeNull=3D"true">The type to =
test.</param>
    /// <returns type=3D"Boolean">True if the type is a class.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    return !!(type && type.__class);
}

$type.isInterface =3D function Type$isInterface(type) {
    /// <summary locid=3D"M:J#Type.isInterface"></summary>
    /// <param name=3D"type" mayBeNull=3D"true">The type to =
test.</param>
    /// <returns type=3D"Boolean">True if the type is an =
interface.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    return !!(type && type.__interface);
}

$type.isNamespace =3D function Type$isNamespace(object) {
    /// <summary locid=3D"M:J#Type.isNamespace"></summary>
    /// <param name=3D"object" mayBeNull=3D"true">The type to =
test.</param>
    /// <returns type=3D"Boolean">True if the object is a =
namespace.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "object", mayBeNull: true}
    ]);
    if (e) throw e;
    return !!(object && object.__namespace);
}

$type.parse =3D function Type$parse(typeName, ns) {
    /// <summary locid=3D"M:J#Type.parse">If a namespace is specified, =
the type name is searched for on this namespace in a  case-insensitive =
way.  If no namespace is specified, the fully-qualified, case-sensitive =
type name must be specified.</summary>
    /// <param name=3D"typeName" type=3D"String" mayBeNull=3D"true">The =
name of the type.</param>
    /// <param name=3D"ns" optional=3D"true" mayBeNull=3D"true">The =
namespace where to look for the type.</param>
    /// <returns type=3D"Type" mayBeNull=3D"true">The type or =
null.</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;
    var htClasses =3D Type.__htClasses;
    if (!htClasses) {
        Type.__htClasses =3D htClasses =3D {};
    }
    fn =3D htClasses[typeName];
    if (!fn) {
        fn =3D window.eval(typeName);
        if (typeof(fn) !=3D=3D 'function') throw =
Error.argument('typeName', Sys.Res.notATypeName);
        htClasses[typeName] =3D fn;
    }
    return fn;
}

$type.registerNamespace =3D function =
Type$registerNamespace(namespacePath) {
    /// <summary locid=3D"M:J#Type.registerNamespace">Creates a =
namespace.</summary>
    /// <param name=3D"namespacePath" type=3D"String">The full path of =
the namespace.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "namespacePath", type: String}
    ]);
    if (e) throw e;
    Type._registerNamespace(namespacePath);
}
$type._registerNamespace =3D function =
Type$_registerNamespace(namespacePath) {
    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, l =3D namespaceParts.length; i < l; i++) {
        var currentPart =3D namespaceParts[i];
        var ns =3D rootObject[currentPart];
        var nsType =3D typeof(ns);
        if ((nsType !=3D=3D "undefined") && (ns !=3D=3D null)) {
            if (nsType =3D=3D=3D "function") {
                throw =
Error.invalidOperation(String.format(Sys.Res.namespaceContainsClass, =
namespaceParts.splice(0, i + 1).join('.')));
            }
            if ((typeof(ns) !=3D=3D "object") || (ns instanceof Array)) =
{
                throw =
Error.invalidOperation(String.format(Sys.Res.namespaceContainsNonObject, =
namespaceParts.splice(0, i + 1).join('.')));
            }
        }
        if (!ns) {
            ns =3D rootObject[currentPart] =3D {};
        }
        if (!ns.__namespace) {
            if (!i && (namespacePath !=3D=3D "Sys")) {
                Sys.__rootNamespaces.push(ns);
            }
            ns.__namespace =3D true;
            ns.__typeName =3D namespaceParts.slice(0, i + 1).join('.');
            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;
    }
}

$type._checkDependency =3D function Type$_checkDependency(dependency, =
featureName) {
    var scripts =3D Type._registerScript._scripts, isDependent =3D =
(scripts ? (!!scripts[dependency]) : false);
    if ((typeof(featureName) !=3D=3D 'undefined') && !isDependent) {
        throw =
Error.invalidOperation(String.format(Sys.Res.requiredScriptReferenceNotIn=
cluded,=20
        featureName, dependency));
    }
    return isDependent;
}

$type._registerScript =3D function Type$_registerScript(scriptName, =
dependencies) {
    var scripts =3D Type._registerScript._scripts;
    if (!scripts) {
        Type._registerScript._scripts =3D scripts =3D {};
    }
    if (scripts[scriptName]) {
        throw =
Error.invalidOperation(String.format(Sys.Res.scriptAlreadyLoaded, =
scriptName));
    }
    scripts[scriptName] =3D true;
    if (dependencies) {
        for (var i =3D 0, l =3D dependencies.length; i < l; i++) {
            var dependency =3D dependencies[i];
            if (!Type._checkDependency(dependency)) {
                throw =
Error.invalidOperation(String.format(Sys.Res.scriptDependencyNotFound, =
scriptName, dependency));
            }
        }
    }
}

$type._registerNamespace("Sys");
Sys.__upperCaseTypes =3D {};
Sys.__rootNamespaces =3D [Sys];
Sys.__registeredTypes =3D {};

Sys._isInstanceOfType =3D function _isInstanceOfType(type, instance) {
    if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D =
null) return false;
    if (instance instanceof type) return true;
    var instanceType =3D Object.getType(instance);
    return !!(instanceType =3D=3D=3D type) ||
           (instanceType.inheritsFrom && =
instanceType.inheritsFrom(type)) ||
           (instanceType.implementsInterface && =
instanceType.implementsInterface(type));
}

Sys._getBaseMethod =3D function _getBaseMethod(type, instance, name) {
    if (!Sys._isInstanceOfType(type, instance)) throw =
Error.argumentType('instance', Object.getType(instance), type);
    var baseType =3D type.getBaseType();
    if (baseType) {
        var baseMethod =3D baseType.prototype[name];
        return (baseMethod instanceof Function) ? baseMethod : null;
    }
    return null;
}

Sys._isDomElement =3D function _isDomElement(obj) {
    var val =3D false;
    if (typeof (obj.nodeType) !=3D=3D 'number') {
        var doc =3D obj.ownerDocument || obj.document || obj;
        if (doc !=3D obj) {
            var w =3D doc.defaultView || doc.parentWindow;
            val =3D (w !=3D obj);
        }
        else {
            val =3D !doc.body || !Sys._isDomElement(doc.body);
        }
    }
    return !val;
}

var isBrowser =3D Sys._isBrowser =3D function _isBrowser(name) {
    return Sys.Browser.agent =3D=3D=3D Sys.Browser[name];
}


foreach(Sys._ns, $type._registerNamespace);
delete Sys._ns;
$type =3D Array;
$type.__typeName =3D 'Array';
$type.__class =3D true;

var indexOf =3D Sys._indexOf =3D function _indexOf(array, item, start) {
    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 (array[i] =3D=3D=3D item) {
                return i;
            }
        }
    }
    return -1;
}

$type.add =3D $type.enqueue =3D function Array$enqueue(array, item) {
    /// <summary locid=3D"M:J#Array.enqueue">Adds an element at the end =
of the array.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to add to.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The object to =
add.</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;
}

$type.addRange =3D function Array$addRange(array, items) {
    /// <summary locid=3D"M:J#Array.addRange">Adds a range of items at =
the end of the array.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to add to.</param>
    /// <param name=3D"items" type=3D"Array" =
elementMayBeNull=3D"true">The array of items to append.</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);
}

$type.clear =3D function Array$clear(array) {
    /// <summary locid=3D"M:J#Array.clear">Clears the array of its =
elements.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to clear.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    array.length =3D 0;
}

$type.clone =3D function Array$clone(array) {
    /// <summary locid=3D"M:J#Array.clone">Makes a clone of the =
array.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to clone.</param>
    /// <returns type=3D"Array" elementMayBeNull=3D"true">A clone of the =
array.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    return array.length =3D=3D=3D 1 ? [array[0]] : Array.apply(null, =
array);
}

$type.contains =3D function Array$contains(array, item) {
    /// <summary locid=3D"M:J#Array.contains">Use this method to =
determine if an array contains the specified element.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to look into.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The object to find in =
the array.</param>
    /// <returns type=3D"Boolean">True if the object was =
found.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    return (indexOf(array, item) >=3D 0);
}

$type.dequeue =3D function Array$dequeue(array) {
    /// <summary locid=3D"M:J#Array.dequeue"></summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">Removes and returns the object at the =
beginning of the array.</param>
    /// <returns mayBeNull=3D"true">The object that is removed from the =
beginning of the array.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    return array.shift();
}

$type.forEach =3D function Array$forEach(array, method, instance) {
    /// <summary locid=3D"M:J#Array.forEach">Calls the specified =
function on each element of the array.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to enumerate.</param>
    /// <param name=3D"method" type=3D"Function">The method to call.   =
The method should take the array element, the index of the element and   =
the array itself as its parameters.</param>
    /// <param name=3D"instance" optional=3D"true" =
mayBeNull=3D"true">The context under which the function must run (i.e. =
what 'this' means inside the function).</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);
    }
}

$type.indexOf =3D function Array$indexOf(array, item, start) {
    /// <summary locid=3D"M:J#Array.indexOf">Finds the index in the =
array of the provided item.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to look into.</param>
    /// <param name=3D"item" optional=3D"true" mayBeNull=3D"true">The =
object to find.</param>
    /// <param name=3D"start" optional=3D"true" mayBeNull=3D"true">The =
index where the search begins.</param>
    /// <returns type=3D"Number">The index of the item or -1 if it =
wasn't found.</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;
    return indexOf(array, item, start);
}

$type.insert =3D function Array$insert(array, index, item) {
    /// <summary locid=3D"M:J#Array.insert">Inserts an item at the =
specified index.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to insert into.</param>
    /// <param name=3D"index" mayBeNull=3D"true">The index where the =
item will be inserted.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The item to =
insert.</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);
}

$type.parse =3D function Array$parse(value) {
    /// <summary locid=3D"M:J#Array.parse">Creates an array from a =
string representation of the form "[elt1, elt2, elt3]".</summary>
    /// <param name=3D"value" type=3D"String" mayBeNull=3D"true">The =
string representation of the array.</param>
    /// <returns type=3D"Array" elementMayBeNull=3D"true">An array built =
from the string representation.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String, mayBeNull: true}
    ]);
    if (e) throw e;
    var v =3D value ? window.eval("(" + value + ")") : [];
    if (!Array.isInstanceOfType(v)) throw Error.argument('value', =
Sys.Res.arrayParseBadFormat);
    return v;
}

$type.remove =3D function Array$remove(array, item) {
    /// <summary locid=3D"M:J#Array.remove">Removes the first occurence =
of an item from the array.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to remove from.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The item to =
remove.</param>
    /// <returns type=3D"Boolean">True if the item was found.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    var index =3D indexOf(array, item);
    if (index >=3D 0) {
        array.splice(index, 1);
    }
    return (index >=3D 0);
}

$type.removeAt =3D function Array$removeAt(array, index) {
    /// <summary locid=3D"M:J#Array.removeAt">Removes the item at the =
specified index from the array.</summary>
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true">The array to remove from.</param>
    /// <param name=3D"index" mayBeNull=3D"true">The index of the item =
to remove.</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);
}



Type._registerScript._scripts =3D {
	"MicrosoftAjaxCore.js": true,
	"MicrosoftAjaxGlobalization.js": true,
	"MicrosoftAjaxSerialization.js": true,
	"MicrosoftAjaxComponentModel.js": true,
	"MicrosoftAjaxHistory.js": true,
	"MicrosoftAjaxNetwork.js" : true,
	"MicrosoftAjaxWebServices.js": true };

$type =3D Sys.IDisposable =3D function IDisposable() {
    throw Error.notImplemented();
}
$type.prototype =3D {
    dispose: function IDisposable$dispose() {
        throw Error.notImplemented();
    }
}
$type.registerInterface('Sys.IDisposable');
$type =3D Sys.StringBuilder =3D function StringBuilder(initialText) {
    /// <summary locid=3D"M:J#Sys.StringBuilder.#ctor">Provides an =
optimized mechanism to concatenate a sequence of strings.</summary>
    /// <param name=3D"initialText" optional=3D"true" =
mayBeNull=3D"true">The initial text for the StringBuilder.</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;
}

$type.prototype =3D {
    append: function StringBuilder$append(text) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.append">Appends a =
new string at the end of the StringBuilder.</summary>
        /// <param name=3D"text" mayBeNull=3D"true">The string to =
append.</param>
        /// <returns type=3D"Sys.StringBuilder"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "text", mayBeNull: true}
        ]);
        if (e) throw e;
        this._parts.push(text);
        return this;
    },

    appendLine: function StringBuilder$appendLine(text) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.appendLine">Appends =
a new string as a line of text at the end of the =
StringBuilder.</summary>
        /// <param name=3D"text" optional=3D"true" =
mayBeNull=3D"true">The string to append.</param>
        /// <returns type=3D"Sys.StringBuilder"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "text", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._parts.push(
            ((typeof(text) =3D=3D=3D 'undefined') || (text =3D=3D=3D =
null) || (text =3D=3D=3D '')) ?
            '\r\n' : (text + '\r\n'));
        return this;
    },

    clear: function StringBuilder$clear() {
        /// <summary locid=3D"M:J#Sys.StringBuilder.clear">Clears the =
StringBuilder of its current contents.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._parts =3D [];
        this._value =3D {};
        this._len =3D 0;
    },

    isEmpty: function StringBuilder$isEmpty() {
        /// <summary locid=3D"M:J#Sys.StringBuilder.isEmpty">Use this =
method to determine if the StringBuilder has contents.</summary>
        /// <returns type=3D"Boolean">True if the StringBuilder has any =
contents.</returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return (!this._parts.length || !this.toString());
    },

    toString: function StringBuilder$toString(separator) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.toString">Creates a =
string from the contents of the StringBuilder.</summary>
        /// <param name=3D"separator" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The separator to insert between the elements of the =
StringBuilder.</param>
        /// <returns type=3D"String">The string built from the =
StringBuilder.</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;
        var ret =3D val[separator];
        if (typeof(ret) =3D=3D=3D 'undefined') {
            if (separator !=3D=3D '') {
                for (var i =3D 0; i < parts.length;) {
                    var part =3D parts[i];
                    if ((typeof(part) =3D=3D=3D 'undefined') || (part =
=3D=3D=3D '') || (part =3D=3D=3D null)) {
                        parts.splice(i, 1);
                    }
                    else {
                        i++;
                    }
                }
            }
            val[separator] =3D ret =3D parts.join(separator);
        }
        return ret;
    }
}
$type.registerClass('Sys.StringBuilder');

var agent =3D navigator.userAgent,
    browser =3D Sys.Browser =3D {
        InternetExplorer: {},
        Firefox: {},
        Safari: {},
        Opera: {},
        agent: null,
        hasDebuggerStatement: false,
        name: navigator.appName,
        version: parseFloat(navigator.appVersion),
        documentMode: 0 };

if (agent.indexOf(' MSIE ') > -1) {
    browser.agent =3D browser.InternetExplorer;
    browser.version =3D parseFloat(agent.match(/MSIE (\d+\.\d+)/)[1]);
    if ((browser.version > 7) && (document.documentMode > 6)) {
        browser.documentMode =3D document.documentMode;   =20
    }
    browser.hasDebuggerStatement =3D true;
}
else if (agent.indexOf(' Firefox/') > -1) {
    browser.agent =3D browser.Firefox;
    browser.version =3D parseFloat(agent.match(/ =
Firefox\/(\d+\.\d+)/)[1]);
    browser.name =3D 'Firefox';
    browser.hasDebuggerStatement =3D true;
}
else if (agent.indexOf(' AppleWebKit/') > -1) {
    browser.agent =3D browser.Safari;
    browser.version =3D parseFloat(agent.match(/ =
AppleWebKit\/(\d+(\.\d+)?)/)[1]);
    browser.name =3D 'Safari';
}
else if (agent.indexOf('Opera/') > -1) {
    browser.agent =3D browser.Opera;
}


$type =3D Sys.EventArgs =3D function EventArgs() {
    /// <summary locid=3D"M:J#Sys.EventArgs.#ctor">EventArgs is the base =
class for classes containing event data.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
$type.registerClass('Sys.EventArgs');

Sys.EventArgs.Empty =3D new Sys.EventArgs();
$type =3D Sys.CancelEventArgs =3D function CancelEventArgs() {
    /// <summary locid=3D"M:J#Sys.CancelEventArgs.#ctor">CancelEventArgs =
is the base class for classes containing event data, which can be used =
to cancel the event.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.CancelEventArgs.initializeBase(this);

    this._cancel =3D false;
}
$type.prototype =3D {
    get_cancel: function 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;
    },
    set_cancel: function CancelEventArgs$set_cancel(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._cancel =3D value;
    }
}
$type.registerClass('Sys.CancelEventArgs', Sys.EventArgs);


Type.registerNamespace('Sys.UI');

$type =3D Sys._Debug =3D function _Debug() {
    /// <summary locid=3D"M:J#Sys.Debug.#ctor">Provides a set of methods =
that help debug your code.</summary>
    /// <field name=3D"isDebug" type=3D"Boolean" =
locid=3D"F:J#Sys.Debug.isDebug"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
$type.prototype =3D {
    _appendConsole: function _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);
        }
    },

    _getTrace: function() {
        var traceElement =3D Sys.get('#TraceConsole');
        return (traceElement && (traceElement.tagName.toUpperCase() =
=3D=3D=3D 'TEXTAREA')) ? traceElement : null;
    },

    _appendTrace: function _Debug$_appendTrace(text) {
        var traceElement =3D this._getTrace();
        if (traceElement) {
            traceElement.value +=3D text + '\n';
        }
    },

    assert: function _Debug$assert(condition, message, displayCaller) {
        /// <summary locid=3D"M:J#Sys.Debug.assert">Checks for a =
condition, displays a message and prompts the user to break   into the =
debugger if the condition is false.</summary>
        /// <param name=3D"condition" type=3D"Boolean">true to prevent a =
message being displayed; otherwise, false.</param>
        /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">A message to display.</param>
        /// <param name=3D"displayCaller" type=3D"Boolean" =
optional=3D"true" mayBeNull=3D"true">True if the function calling assert =
should be displayed in the message.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "condition", type: Boolean},
            {name: "message", type: String, mayBeNull: true, optional: =
true},
            {name: "displayCaller", type: Boolean, mayBeNull: true, =
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);
            }
        }
    },

    clearTrace: function _Debug$clearTrace() {
        /// <summary locid=3D"M:J#Sys.Debug.clearTrace"></summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var traceElement =3D this._getTrace();
        if (traceElement) {
            traceElement.value =3D '';
        }
    },

    fail: function _Debug$fail(message) {
        /// <summary locid=3D"M:J#Sys.Debug.fail">Displays a message in =
the debugger's output window and breaks into the debugger.</summary>
        /// <param name=3D"message" type=3D"String" mayBeNull=3D"true">A =
message to display.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "message", type: String, mayBeNull: true}
        ]);
        if (e) throw e;
        this._appendConsole(message);

        if (Sys.Browser.hasDebuggerStatement) {
            window.eval('debugger');
        }
    },

    trace: function _Debug$trace(text) {
        /// <summary locid=3D"M:J#Sys.Debug.trace">Appends a text line =
to the debugger console and the TraceConsole textarea element if =
available.</summary>
        /// <param name=3D"text">Text for trace.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "text"}
        ]);
        if (e) throw e;
        this._appendConsole(text);
        this._appendTrace(text);
    },

    traceDump: function _Debug$traceDump(object, name) {
        /// <summary locid=3D"M:J#Sys.Debug.traceDump">Dumps an object =
to the debugger console and the TraceConsole textarea element if =
available.</summary>
        /// <param name=3D"object" mayBeNull=3D"true">Object for trace =
dump.</param>
        /// <param name=3D"name" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">Object name.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", mayBeNull: true},
            {name: "name", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        this._traceDump(object, name, true);
    },

    _traceDump: function _Debug$_traceDump(object, name, recursive, =
indentationPadding, loopArray) {
        name =3D name || 'traceDump';
        indentationPadding =3D indentationPadding || '';
        var prefix =3D indentationPadding + name + ": ";
        if (object =3D=3D=3D null) {
            this.trace(prefix + 'null');
            return;
        }
        switch(typeof(object)) {
            case 'undefined':
                this.trace(prefix + 'Undefined');
                break;
            case 'number': case 'string': case 'boolean':
                this.trace(prefix + object);
                break;
            default:
                if (Date.isInstanceOfType(object) || =
RegExp.isInstanceOfType(object)) {
                    this.trace(prefix + object.toString());
                    break;
                }
                if (!loopArray) {
                    loopArray =3D [];
                }
                else if (Array.contains(loopArray, object)) {
                    this.trace(prefix + '...');
                    return;
                }
                loopArray.push(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 || '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 (object instanceof Array) {
                            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 (typeof(v) !=3D=3D "function") {
                                    this._traceDump(v, p, recursive, =
indentationPadding, loopArray);
                                }
                            }
                        }
                    }
                }
                Array.remove(loopArray, object);
        }
    }
}
$type.registerClass('Sys._Debug');

$type =3D Sys.Debug =3D new Sys._Debug();
$type.isDebug =3D true;
function Sys$Enum$parse(value, ignoreCase) {
    /// <summary locid=3D"M:J#Sys.Enum.parse">Converts the string =
representation of the name or numeric value of one or more enumerated   =
constants to an equivalent enumerated object.</summary>
    /// <param name=3D"value" type=3D"String">A string containing the =
name or value to convert.</param>
    /// <param name=3D"ignoreCase" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">If true, the parsing will be done case-insensitively. =
 If omitted, the parsing is done case-sensitively.</param>
    /// <returns>An object of type enumType whose value is represented =
by value.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "ignoreCase", type: Boolean, mayBeNull: true, 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;
    }
    function throwError(v) {
        if (typeof(parsed) !=3D=3D 'number') throw =
Error.argument('value', String.format(Sys.Res.enumInvalidValue, v, =
this.__typeName));
    }
    if (!this.__flags) {
        val =3D (ignoreCase ? value.toLowerCase() : value);
        parsed =3D values[val.trim()];
        if (typeof(parsed) !=3D=3D 'number') throwError.call(this, =
value);
        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') throwError.call(this, =
value.split(',')[i].trim());
            v |=3D parsed;
        }
        return v;
    }
}

function Sys$Enum$toString(value) {
    /// <summary locid=3D"M:J#Sys.Enum.toString">Converts the value of =
an enum instance to its equivalent string representation.</summary>
    /// <param name=3D"value" optional=3D"true" mayBeNull=3D"true">The =
value of the enum instance for which the string representation must be =
constructed.</param>
    /// <returns type=3D"String">The string representation of =
"value".</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.push({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.push(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 =3D Type;

$type.prototype.registerEnum =3D function Type$registerEnum(name, flags) =
{
    /// <summary locid=3D"M:J#Sys.UI.LineType.#ctor">Registers an enum =
type.</summary>
    /// <param name=3D"name" type=3D"String">The fully-qualified name of =
the enum.</param>
    /// <param name=3D"flags" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">True if the enum is a flags collection.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "name", type: String},
        {name: "flags", type: Boolean, mayBeNull: true, 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 j in this.prototype) {
        var val =3D this.prototype[j];
        if (!Type.__identifierRegExp.test(j)) throw =
Error.invalidOperation(String.format(Sys.Res.enumInvalidValueName, j));
        if (typeof(val) !=3D=3D 'number' || (val % 1) !=3D=3D 0) throw =
Error.invalidOperation(Sys.Res.enumValueNotInteger);
        if (typeof(this[j]) !=3D=3D 'undefined') throw =
Error.invalidOperation(String.format(Sys.Res.enumReservedName, j));
    }
    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"></summary>
    /// <param name=3D"type" mayBeNull=3D"true">The type to =
test.</param>
    /// <returns type=3D"Boolean">True if the type is an enum.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    return !!(type && type.__enum);
}

$type.isFlags =3D function Type$isFlags(type) {
    /// <summary locid=3D"M:J#Type.isFlags"></summary>
    /// <param name=3D"type" mayBeNull=3D"true">The type to =
test.</param>
    /// <returns type=3D"Boolean">True if the type is a set of =
flags.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    return !!(type && type.__flags);
}

$type =3D Sys.CollectionChange =3D function CollectionChange(action, =
newItems, newStartingIndex, oldItems, oldStartingIndex) {
    /// <summary locid=3D"M:J#Sys.CollectionChange.#ctor">Describes a =
change in a collection.</summary>
    /// <param name=3D"action" =
type=3D"Sys.NotifyCollectionChangedAction"></param>
    /// <param name=3D"newItems" optional=3D"true" =
mayBeNull=3D"true">The items that were added when action is add or =
replace.</param>
    /// <param name=3D"newStartingIndex" type=3D"Number" =
integer=3D"true" optional=3D"true" mayBeNull=3D"true">The index where =
new items have been inserted.</param>
    /// <param name=3D"oldItems" optional=3D"true" =
mayBeNull=3D"true">The items that were removed when action is remove or =
replace.</param>
    /// <param name=3D"oldStartingIndex" type=3D"Number" =
integer=3D"true" optional=3D"true" mayBeNull=3D"true">The index where =
old items have been removed.</param>
    /// <field name=3D"action" =
type=3D"Sys.NotifyCollectionChangedAction" =
locid=3D"F:J#Sys.CollectionChange.action"></field>
    /// <field name=3D"newItems" type=3D"Array" mayBeNull=3D"true" =
elementMayBeNull=3D"true" =
locid=3D"F:J#Sys.CollectionChange.newItems">The items that were added =
when action is add.</field>
    /// <field name=3D"newStartingIndex" type=3D"Number" =
integer=3D"true" locid=3D"F:J#Sys.CollectionChange.newStartingIndex">The =
index where new items have been inserted.</field>
    /// <field name=3D"oldItems" type=3D"Array" mayBeNull=3D"true" =
elementMayBeNull=3D"true" =
locid=3D"F:J#Sys.CollectionChange.oldItems">The items that were removed =
when action is remove.</field>
    /// <field name=3D"oldStartingIndex" type=3D"Number" =
integer=3D"true" locid=3D"F:J#Sys.CollectionChange.oldStartingIndex">The =
index where old items have been removed.</field>
    var e =3D Function._validateParams(arguments, [
        {name: "action", type: Sys.NotifyCollectionChangedAction},
        {name: "newItems", mayBeNull: true, optional: true},
        {name: "newStartingIndex", type: Number, mayBeNull: true, =
integer: true, optional: true},
        {name: "oldItems", mayBeNull: true, optional: true},
        {name: "oldStartingIndex", type: Number, mayBeNull: true, =
integer: true, optional: true}
    ]);
    if (e) throw e;
    this.action =3D action;
    if (newItems) {
        if (!(newItems instanceof Array)) {
            newItems =3D [newItems];
        }
    }
    this.newItems =3D newItems || null;
    if (typeof newStartingIndex !=3D=3D "number") {
        newStartingIndex =3D -1;
    }
    this.newStartingIndex =3D newStartingIndex;
    if (oldItems) {
        if (!(oldItems instanceof Array)) {
            oldItems =3D [oldItems];
        }
    }
    this.oldItems =3D oldItems || null;
    if (typeof oldStartingIndex !=3D=3D "number") {
        oldStartingIndex =3D -1;
    }
    this.oldStartingIndex =3D oldStartingIndex;
}
$type.registerClass("Sys.CollectionChange");
$type =3D Sys.NotifyCollectionChangedAction =3D function =
NotifyCollectionChangedAction() {
    /// <summary =
locid=3D"M:J#Sys.NotifyCollectionChangedAction.#ctor">Describes how a =
collection has changed.</summary>
    /// <field name=3D"add" type=3D"Number" integer=3D"true" =
static=3D"true" =
locid=3D"F:J#Sys.NotifyCollectionChangedAction.add"></field>
    /// <field name=3D"remove" type=3D"Number" integer=3D"true" =
static=3D"true" =
locid=3D"F:J#Sys.NotifyCollectionChangedAction.remove"></field>
    /// <field name=3D"reset" type=3D"Number" integer=3D"true" =
static=3D"true" =
locid=3D"F:J#Sys.NotifyCollectionChangedAction.reset"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
$type.prototype =3D {
    add: 0,
    remove: 1,
    reset: 2
}
$type.registerEnum('Sys.NotifyCollectionChangedAction');
$type =3D Sys.NotifyCollectionChangedEventArgs =3D function =
NotifyCollectionChangedEventArgs(changes) {
    /// <summary =
locid=3D"M:J#Sys.NotifyCollectionChangedEventArgs.#ctor">Describes how =
the collection was changed.</summary>
    /// <param name=3D"changes" type=3D"Array" =
elementType=3D"Sys.CollectionChange">A list of changes that were =
performed on the collection since the last event.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "changes", type: Array, elementType: =
Sys.CollectionChange}
    ]);
    if (e) throw e;
    this._changes =3D changes;
    Sys.NotifyCollectionChangedEventArgs.initializeBase(this);
}
$type.prototype =3D {
    get_changes: function NotifyCollectionChangedEventArgs$get_changes() =
{
        /// <value type=3D"Array" elementType=3D"Sys.CollectionChange" =
locid=3D"P:J#Sys.NotifyCollectionChangedEventArgs.changes"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._changes || [];
    }
}
$type.registerClass("Sys.NotifyCollectionChangedEventArgs", =
Sys.EventArgs);

$type =3D Sys.Observer =3D function Observer() {
    throw Error.invalidOperation();
}
$type.registerClass("Sys.Observer");

$type.makeObservable =3D function Observer$makeObservable(target) {
    /// <summary locid=3D"M:J#Sys.Observer.makeObservable">Makes an =
object directly observable by adding observable methods to it.</summary>
    /// <param name=3D"target" mayBeNull=3D"false">The object, array, or =
DOM element to make observable.</param>
    /// <returns>The observable object.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "target"}
    ]);
    if (e) throw e;
    var isArray =3D target instanceof Array,
        o =3D Sys.Observer;
    Sys.Observer._ensureObservable(target);
    if (target.setValue =3D=3D=3D o._observeMethods.setValue) return =
target;
    o._addMethods(target, o._observeMethods);
    if (isArray) {
        o._addMethods(target, o._arrayMethods);
    }
    return target;
}

$type._ensureObservable =3D function Observer$_ensureObservable(target) =
{
    var type =3D typeof target;
    if ((type =3D=3D=3D "string") || (type =3D=3D=3D "number") || (type =
=3D=3D=3D "boolean") || (type =3D=3D=3D "date")) {
        throw =
Error.invalidOperation(String.format(Sys.Res.notObservable, type));
    }
}
$type._addMethods =3D function Observer$_addMethods(target, methods) {
    for (var m in methods) {
        if (target[m] && (target[m] !=3D=3D methods[m])) {
            throw =
Error.invalidOperation(String.format(Sys.Res.observableConflict, m));
        }
        target[m] =3D methods[m];
    }
}
$type._addEventHandler =3D function Observer$_addEventHandler(target, =
eventName, handler) {
    Sys.Observer._getContext(target, true).events._addHandler(eventName, =
handler);
}
$type.addEventHandler =3D function Observer$addEventHandler(target, =
eventName, handler) {
    /// <summary locid=3D"M:J#Sys.Observer.addEventHandler">Adds an =
observable event handler to the target.</summary>
    /// <param name=3D"target"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._addEventHandler(target, eventName, handler);
}
$type._removeEventHandler =3D function =
Observer$_removeEventHandler(target, eventName, handler) {
    Sys.Observer._getContext(target, =
true).events._removeHandler(eventName, handler);
}
$type.removeEventHandler =3D function =
Observer$removeEventHandler(target, eventName, handler) {
    /// <summary locid=3D"M:J#Sys.Observer.removeEventHandler">Removes =
an observable event handler from the target.</summary>
    /// <param name=3D"target"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._removeEventHandler(target, eventName, handler);
}
$type.clearEventHandlers =3D function =
Observer$clearEventHandlers(target, eventName) {
    /// <summary locid=3D"M:J#Sys.Observer.clearEventHandlers">Removes =
all observable event handlers from the target.</summary>
    /// <param name=3D"target"></param>
    /// <param name=3D"eventName" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">If not given, handlers for all events are =
removed.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "eventName", type: String, mayBeNull: true, optional: =
true}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._getContext(target, =
true).events._removeHandlers(eventName);
}
$type.raiseEvent =3D function Observer$raiseEvent(target, eventName, =
eventArgs) {
    /// <summary locid=3D"M:J#Sys.Observer.raiseEvent">Raises an =
observable event on the target.</summary>
    /// <param name=3D"target"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"eventArgs" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "eventName", type: String},
        {name: "eventArgs", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    var ctx =3D Sys.Observer._getContext(target);
    if (!ctx) return;
    var handler =3D ctx.events.getHandler(eventName);
    if (handler) {
        handler(target, eventArgs || Sys.EventArgs.Empty);
    }
}
$type.addPropertyChanged =3D function =
Observer$addPropertyChanged(target, handler) {
    /// <summary locid=3D"M:J#Sys.Observer.addPropertyChanged">Adds a =
propertyChanged event handler to the target.</summary>
    /// <param name=3D"target" mayBeNull=3D"false">The object to =
observe.</param>
    /// <param name=3D"handler" type=3D"Function">The event =
handler.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._addEventHandler(target, "propertyChanged", handler);
}
$type.removePropertyChanged =3D function =
Observer$removePropertyChanged(target, handler) {
    /// <summary =
locid=3D"M:J#Sys.Observer.removePropertyChanged">Removes a =
propertyChanged event handler from the target.</summary>
    /// <param name=3D"target" mayBeNull=3D"false">The object to =
observe.</param>
    /// <param name=3D"handler" type=3D"Function">The event =
handler.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._removeEventHandler(target, "propertyChanged", =
handler);
}
$type.beginUpdate =3D function Observer$beginUpdate(target) {
    /// <summary locid=3D"M:J#Sys.Observer.beginUpdate"></summary>
    /// <param name=3D"target" mayBeNull=3D"false"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._getContext(target, true).updating =3D true;
}
$type.endUpdate =3D function Observer$endUpdate(target) {
    /// <summary locid=3D"M:J#Sys.Observer.endUpdate"></summary>
    /// <param name=3D"target" mayBeNull=3D"false"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    var ctx =3D Sys.Observer._getContext(target);
    if (!ctx || !ctx.updating) return;
    ctx.updating =3D false;
    var dirty =3D ctx.dirty;
    ctx.dirty =3D false;
    if (dirty) {
        if (target instanceof Array) {
            var changes =3D ctx.changes;
            ctx.changes =3D null;
            Sys.Observer.raiseCollectionChanged(target, changes);
        }
        Sys.Observer.raisePropertyChanged(target, "");
    }
}
$type.isUpdating =3D function Observer$isUpdating(target) {
    /// <summary locid=3D"M:J#Sys.Observer.isUpdating"></summary>
    /// <param name=3D"target" mayBeNull=3D"false"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "target"}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    var ctx =3D Sys.Observer._getContext(target);
    return ctx ? ctx.updating : false;
}
$type._setValue =3D function Observer$_setValue(target, propertyName, =
value) {
    var getter, setter, mainTarget =3D target, path =3D =
propertyName.split('.');
    for (var i =3D 0, l =3D (path.length - 1); i < l ; i++) {
        var name =3D path[i];
        getter =3D target["get_" + name];=20
        if (typeof (getter) =3D=3D=3D "function") {
            target =3D getter.call(target);
        }
        else {
            target =3D target[name];
        }
        var type =3D typeof (target);
        if ((target =3D=3D=3D null) || (type =3D=3D=3D "undefined")) {
            throw =
Error.invalidOperation(String.format(Sys.Res.nullReferenceInPath, =
propertyName));
        }
    }   =20
    var currentValue, lastPath =3D path[l];
    getter =3D target["get_" + lastPath];
    if (typeof(getter) =3D=3D=3D 'function') {
        currentValue =3D getter.call(target);
    }
    else {
        currentValue =3D target[lastPath];
    }
    callIf(target, "set_" + lastPath, value) || (target[lastPath] =3D =
value);
    if (currentValue !=3D=3D value) {
        var ctx =3D Sys.Observer._getContext(mainTarget);
        if (ctx && ctx.updating) {
            ctx.dirty =3D true;
            return;
        };
        Sys.Observer.raisePropertyChanged(mainTarget, path[0]);
    }
}
$type.setValue =3D function Observer$setValue(target, propertyName, =
value) {
    /// <summary locid=3D"M:J#Sys.Observer.setValue">Sets a property or =
field on the target in an observable manner.</summary>
    /// <param name=3D"target" mayBeNull=3D"false">The object to set a =
property on.</param>
    /// <param name=3D"propertyName" type=3D"String">The name of the =
property to field to set.</param>
    /// <param name=3D"value" mayBeNull=3D"true">The value to =
set.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "propertyName", type: String},
        {name: "value", mayBeNull: true}
    ]);
    if (e) throw e;
    Sys.Observer._ensureObservable(target);
    Sys.Observer._setValue(target, propertyName, value);
}
$type.raisePropertyChanged =3D function =
Observer$raisePropertyChanged(target, propertyName) {
    /// <summary locid=3D"M:J#Sys.Observer.raisePropertyChanged">Raises =
a change notification event.</summary>
    /// <param name=3D"target" mayBeNull=3D"false">The object to raise =
the event on.</param>
    /// <param name=3D"propertyName" type=3D"String">The name of the =
property that changed.</param>
    Sys.Observer.raiseEvent(target, "propertyChanged", new =
Sys.PropertyChangedEventArgs(propertyName));
}

$type.addCollectionChanged =3D function =
Observer$addCollectionChanged(target, handler) {
    /// <summary =
locid=3D"M:J#Sys.Observer.addCollectionChanged"></summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.Observer._addEventHandler(target, "collectionChanged", handler);
}
$type.removeCollectionChanged =3D function =
Observer$removeCollectionChanged(target, handler) {
    /// <summary =
locid=3D"M:J#Sys.Observer.removeCollectionChanged"></summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.Observer._removeEventHandler(target, "collectionChanged", =
handler);
}
$type._collectionChange =3D function Observer$_collectionChange(target, =
change) {
    var ctx =3D this._getContext(target);
    if (ctx && ctx.updating) {
        ctx.dirty =3D true;
        var changes =3D ctx.changes;
        if (!changes) {
            ctx.changes =3D changes =3D [change];
        }
        else {
            changes.push(change);
        }
    }
    else {
        this.raiseCollectionChanged(target, [change]);
        this.raisePropertyChanged(target, 'length');
    }
}
$type.add =3D function Observer$add(target, item) {
    /// <summary locid=3D"M:J#Sys.Observer.add">Adds an item to the =
collection in an observable manner.</summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true">The array to add to.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The item to add.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    var change =3D new =
Sys.CollectionChange(Sys.NotifyCollectionChangedAction.add, [item], =
target.length);
    Array.add(target, item);
    Sys.Observer._collectionChange(target, change);
}
$type.addRange =3D function Observer$addRange(target, items) {
    /// <summary locid=3D"M:J#Sys.Observer.addRange">Adds items to the =
collection in an observable manner.</summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true">The array to add to.</param>
    /// <param name=3D"items" type=3D"Array" =
elementMayBeNull=3D"true">The array of items to add.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "items", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    var change =3D new =
Sys.CollectionChange(Sys.NotifyCollectionChangedAction.add, items, =
target.length);
    Array.addRange(target, items);
    Sys.Observer._collectionChange(target, change);
}
$type.clear =3D function Observer$clear(target) {
    /// <summary locid=3D"M:J#Sys.Observer.clear">Clears the array of =
its elements in an observable manner.</summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true">The array to clear.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    var oldItems =3D Array.clone(target);
    Array.clear(target);
    Sys.Observer._collectionChange(target, new =
Sys.CollectionChange(Sys.NotifyCollectionChangedAction.reset, null, -1, =
oldItems, 0));
}
$type.insert =3D function Observer$insert(target, index, item) {
    /// <summary locid=3D"M:J#Sys.Observer.insert">Inserts an item at =
the specified index in an observable manner.</summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true">The array to insert into.</param>
    /// <param name=3D"index" type=3D"Number" integer=3D"true">The index =
where the item will be inserted.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The item to =
insert.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "index", type: Number, integer: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    Array.insert(target, index, item);
    Sys.Observer._collectionChange(target, new =
Sys.CollectionChange(Sys.NotifyCollectionChangedAction.add, [item], =
index));
}
$type.remove =3D function Observer$remove(target, item) {
    /// <summary locid=3D"M:J#Sys.Observer.remove">Removes the first =
occurence of an item from the array in an observable manner.</summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true">The array to remove from.</param>
    /// <param name=3D"item" mayBeNull=3D"true">The item to =
remove.</param>
    /// <returns type=3D"Boolean">True if the item was found.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    var index =3D Array.indexOf(target, item);
    if (index !=3D=3D -1) {
        Array.remove(target, item);
        Sys.Observer._collectionChange(target, new =
Sys.CollectionChange(Sys.NotifyCollectionChangedAction.remove, null, -1, =
[item], index));
        return true;
    }
    return false;
}
$type.removeAt =3D function Observer$removeAt(target, index) {
    /// <summary locid=3D"M:J#Sys.Observer.removeAt">Removes the item at =
the specified index from the array in an observable manner.</summary>
    /// <param name=3D"target" type=3D"Array" =
elementMayBeNull=3D"true">The array to remove from.</param>
    /// <param name=3D"index" type=3D"Number" integer=3D"true">The index =
of the item to remove.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "target", type: Array, elementMayBeNull: true},
        {name: "index", type: Number, integer: true}
    ]);
    if (e) throw e;
    if ((index > -1) && (index < target.length)) {
        var item =3D target[index];
        Array.removeAt(target, index);
        Sys.Observer._collectionChange(target, new =
Sys.CollectionChange(Sys.NotifyCollectionChangedAction.remove, null, -1, =
[item], index));
    }
}
$type.raiseCollectionChanged =3D function =
Observer$raiseCollectionChanged(target, changes) {
    /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Raises the =
collectionChanged event.</summary>
    /// <param name=3D"target">The collection to raise the event =
on.</param>
    /// <param name=3D"changes" type=3D"Array" =
elementType=3D"Sys.CollectionChange">A list of changes that were =
performed on the collection since the last event.</param>
    Sys.Observer.raiseEvent(target, "collectionChanged", new =
Sys.NotifyCollectionChangedEventArgs(changes));
}

$type._observeMethods =3D {
    add_propertyChanged: function(handler) {
        Sys.Observer._addEventHandler(this, "propertyChanged", handler);
    },
    remove_propertyChanged: function(handler) {
        Sys.Observer._removeEventHandler(this, "propertyChanged", =
handler);
    },
    addEventHandler: function(eventName, handler) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Adds an observable =
event handler.</summary>
        /// <param name=3D"eventName" type=3D"String"></param>
        /// <param name=3D"handler" type=3D"Function"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "eventName", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        Sys.Observer._addEventHandler(this, eventName, handler);
    },
    removeEventHandler: function(eventName, handler) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Removes an observable =
event handler.</summary>
        /// <param name=3D"eventName" type=3D"String"></param>
        /// <param name=3D"handler" type=3D"Function"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "eventName", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        Sys.Observer._removeEventHandler(this, eventName, handler);
    },
    clearEventHandlers: function(eventName) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Removes all observable =
event handlers from the target.</summary>
        /// <param name=3D"target"></param>
        /// <param name=3D"eventName" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">If not given, handlers for all events are =
removed.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "target"},
            {name: "eventName", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        Sys.Observer._getContext(this, =
true).events._removeHandlers(eventName);
    },
    get_isUpdating: function() {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged"></summary>
        /// <returns type=3D"Boolean"></returns>
        return Sys.Observer.isUpdating(this);
    },
    beginUpdate: function() {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged"></summary>
        Sys.Observer.beginUpdate(this);
    },
    endUpdate: function() {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged"></summary>
        Sys.Observer.endUpdate(this);
    },
    setValue: function(name, value) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Sets a property or =
field on the target in an observable manner.</summary>
        /// <param name=3D"name" type=3D"String">The name of the =
property to field to set.</param>
        /// <param name=3D"value" mayBeNull=3D"true">The value to =
set.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "name", type: String},
            {name: "value", mayBeNull: true}
        ]);
        if (e) throw e;
        Sys.Observer._setValue(this, name, value);
    },
    raiseEvent: function(eventName, eventArgs) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Raises an observable =
event.</summary>
        /// <param name=3D"eventName" type=3D"String"></param>
        /// <param name=3D"eventArgs" optional=3D"true" =
mayBeNull=3D"true"></param>
        Sys.Observer.raiseEvent(this, eventName, eventArgs||null);
    },
    raisePropertyChanged: function(name) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Raises a change =
notification event.</summary>
        /// <param name=3D"name" type=3D"String">The name of the =
property that changed.</param>
        Sys.Observer.raiseEvent(this, "propertyChanged", new =
Sys.PropertyChangedEventArgs(name));
    }
}
$type._arrayMethods =3D {
    add_collectionChanged: function(handler) {
        Sys.Observer._addEventHandler(this, "collectionChanged", =
handler);
    },
    remove_collectionChanged: function(handler) {
        Sys.Observer._removeEventHandler(this, "collectionChanged", =
handler);
    },
    add: function(item) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Adds an item to the =
collection in an observable manner.</summary>
        /// <param name=3D"item" mayBeNull=3D"true">The item to =
add.</param>
        Sys.Observer.add(this, item);
    },
    addRange: function(items) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Adds items to the =
collection in an observable manner.</summary>
        /// <param name=3D"items" type=3D"Array" =
elementMayBeNull=3D"true">The array of items to add.</param>
        Sys.Observer.addRange(this, items);
    },
    clear: function() {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Clears the array of =
its elements in an observable manner.</summary>
        Sys.Observer.clear(this);
    },
    insert: function(index, item) {=20
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Inserts an item at the =
specified index in an observable manner.</summary>
        /// <param name=3D"index" type=3D"Number" integer=3D"true">The =
index where the item will be inserted.</param>
        /// <param name=3D"item" mayBeNull=3D"true">The item to =
insert.</param>
        Sys.Observer.insert(this, index, item);
    },
    remove: function(item) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Removes the first =
occurence of an item from the array in an observable manner.</summary>
        /// <param name=3D"item" mayBeNull=3D"true">The item to =
remove.</param>
        /// <returns type=3D"Boolean">True if the item was =
found.</returns>
        return Sys.Observer.remove(this, item);
    },
    removeAt: function(index) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Removes the item at =
the specified index from the array in an observable manner.</summary>
        /// <param name=3D"index" type=3D"Number" integer=3D"true">The =
index of the item to remove.</param>
        Sys.Observer.removeAt(this, index);
    },
    raiseCollectionChanged: function(changes) {
        /// <summary =
locid=3D"M:J#Sys.Observer.raiseCollectionChanged">Raises the =
collectionChanged event.</summary>
        /// <param name=3D"changes" type=3D"Array" =
elementType=3D"Sys.CollectionChange">A list of changes that were =
performed on the collection since the last event.</param>
        Sys.Observer.raiseEvent(this, "collectionChanged", new =
Sys.NotifyCollectionChangedEventArgs(changes));
    }
}
$type._getContext =3D function Observer$_getContext(obj, create) {
    var ctx =3D obj._observerContext;
    if (ctx) return ctx();
    if (create) {
        return (obj._observerContext =3D this._createContext())();
    }
    return null;
}
$type._createContext =3D function Observer$_createContext() {
    var ctx =3D {
        events: new Sys.EventHandlerList()
    };
    return function() {
        return ctx;
    }
}


function outOfRange(value, low, high) {
    return (value < low) || (value > high);
}

function expandYear(dtf, year) {
    var now =3D new Date(),
        era =3D getEra(now);
    if (year < 100) {
        var curr =3D getEraYear(now, dtf, era);
        year +=3D curr - (curr % 100);
        if (year > dtf.Calendar.TwoDigitYearMax) {
            year -=3D 100;
        }
    }
    return year;
}

function getEra(date, eras) {
    if (!eras) return 0;
    var start, ticks =3D date.getTime();
    for (var i =3D 0, l =3D eras.length; i < l; i +=3D 4) {
        start =3D eras[i+2];
        if ((start =3D=3D=3D null) || (ticks >=3D start)) {
            return i;
        }
    }
    return 0;
}

function getEraYear(date, dtf, era, sortable) {
    var year =3D date.getFullYear();
    if (!sortable && dtf.eras) {
        year -=3D dtf.eras[era + 3];
    }   =20
    return year;
}

Sys._appendPreOrPostMatch =3D function _appendPreOrPostMatch(preMatch, =
strings) {
    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) strings.push("'");
            else quoteCount++;
            escaped =3D false;
            break;
        case '\\':
            if (escaped) strings.push("\\");
            escaped =3D !escaped;
            break;
        default:
            strings.push(c);
            escaped =3D false;
            break;
        }
    }
    return quoteCount;
}

$type =3D Date;
$type._expandFormat =3D function Date$_expandFormat(dtf, format) {
    format =3D format || "F";
    var len =3D format.length;
    if (len =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["LongDatePattern"] + " " + =
dtf["ShortTimePattern"];
        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);
        }
    }
    else if ((len =3D=3D=3D 2) && (format.charAt(0) =3D=3D=3D "%")) {
        format =3D format.charAt(1);
    }
    return format;
}

$type._getParseRegExp =3D function Date$_getParseRegExp(dtf, format) {
    var re =3D dtf._parseRegExp;
    if (!re) {
        dtf._parseRegExp =3D re =3D {};
    }
    else {
        var reFormat =3D re[format];
        if (reFormat) {
            return reFormat;
        }
    }

    var expFormat =3D Date._expandFormat(dtf, format);
    expFormat =3D expFormat.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g, =
"\\\\$1");

    var regexp =3D ["^"];
    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 Sys._appendPreOrPostMatch(preMatch, regexp);
        if (quoteCount % 2) {
            regexp.push(match[0]);
            continue;
        }

        var m =3D match[0],
            len =3D m.length,
            add;
        switch (m) {
            case 'dddd': case 'ddd':
            case 'MMMM': case 'MMM':
            case 'gg': case 'g':
                add =3D "(\\D+)";
                break;
            case 'tt': case 't':
                add =3D "(\\D*)";
                break;
            case 'yyyy':
            case 'fff':
            case 'ff':
            case 'f':
                add =3D "(\\d{" + len + "})";
                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':
                add =3D "(\\d\\d?)";
                break;
            case 'zzz':
                add =3D "([+-]?\\d\\d?:\\d{2})";
                break;
            case 'zz': case 'z':
                add =3D "([+-]?\\d\\d?)";
                break;
            case '/':
                add =3D "(\\" + dtf.DateSeparator + ")";
                break;
        }
        if (add) {
            regexp.push(add);
        }
        groups.push(match[0]);
    }
    Sys._appendPreOrPostMatch(expFormat.slice(index), regexp);
    regexp.push("$");
    var regexpStr =3D regexp.join('').replace(/\s+/g, "\\s+");
    var parseRegExp =3D {'regExp': regexpStr, 'groups': groups};
    re[format] =3D parseRegExp;
    return parseRegExp;
}

$type._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|gg|g/g;
}

$type.parseLocale =3D function Date$parseLocale(value, formats) {
    /// <summary locid=3D"M:J#Date.parseLocale">Creates a date from a =
locale-specific string representation.</summary>
    /// <param name=3D"value" type=3D"String">A locale-specific string =
that can parse to a date.</param>
    /// <param name=3D"formats" parameterArray=3D"true" =
optional=3D"true" mayBeNull=3D"true">Custom formats to match.</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);
}

$type.parseInvariant =3D function Date$parseInvariant(value, formats) {
    /// <summary locid=3D"M:J#Date.parseInvariant">Creates a date from =
its string representation.</summary>
    /// <param name=3D"value" type=3D"String">A string that can parse to =
a date.</param>
    /// <param name=3D"formats" parameterArray=3D"true" =
optional=3D"true" mayBeNull=3D"true">Custom formats to match.</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);
}

$type._parse =3D function Date$_parse(value, cultureInfo, args) {
    var i, l, date, format, formats, custom =3D false;
    for (i =3D 1, l =3D args.length; i < l; i++) {
        format =3D args[i];
        if (format) {
            custom =3D true;
            date =3D Date._parseExact(value, format, cultureInfo);
            if (date) return date;
        }
    }
    if (! custom) {
        formats =3D cultureInfo._getDateTimeFormats();
        for (i =3D 0, l =3D formats.length; i < l; i++) {
            date =3D Date._parseExact(value, formats[i], cultureInfo);
            if (date) return date;
        }
    }
    return null;
}

$type._parseExact =3D function Date$_parseExact(value, format, =
cultureInfo) {
    value =3D value.trim();
    var dtf =3D cultureInfo.dateTimeFormat,
        parseInfo =3D this._getParseRegExp(dtf, format),
        match =3D new RegExp(parseInfo.regExp).exec(value);
    if (match =3D=3D=3D null) return null;
   =20
    var groups =3D parseInfo.groups,
        era =3D null, year =3D null, month =3D null, date =3D null, =
weekDay =3D null,
        hour =3D 0, hourOffset, min =3D 0, sec =3D 0, msec =3D 0, =
tzMinOffset =3D null,
        pmHour =3D false;
   =20
    for (var j =3D 0, jl =3D groups.length; j < jl; j++) {
        var matchGroup =3D match[j+1];
        if (matchGroup) {
            var current =3D groups[j],
                clength =3D current.length,
                matchInt =3D parseInt(matchGroup, 10);
            switch (current) {
                case 'dd': case 'd':
                    date =3D matchInt;
                    if (outOfRange(date, 1, 31)) return null;
                    break;
                case 'MMM':
                case 'MMMM':
                    month =3D cultureInfo._getMonthIndex(matchGroup, =
clength =3D=3D=3D 3);
                    if (outOfRange(month, 0, 11)) return null;
                    break;
                case 'M': case 'MM':
                    month =3D matchInt - 1;
                    if (outOfRange(month, 0, 11)) return null;
                    break;
                case 'y': case 'yy':
                case 'yyyy':
                    year =3D clength < 4 ? expandYear(dtf,matchInt) : =
matchInt;
                    if (outOfRange(year, 0, 9999)) return null;
                    break;
                case 'h': case 'hh':
                    hour =3D matchInt;
                    if (hour =3D=3D=3D 12) hour =3D 0;
                    if (outOfRange(hour, 0, 11)) return null;
                    break;
                case 'H': case 'HH':
                    hour =3D matchInt;
                    if (outOfRange(hour, 0, 23)) return null;
                    break;
                case 'm': case 'mm':
                    min =3D matchInt;
                    if (outOfRange(min, 0, 59)) return null;
                    break;
                case 's': case 'ss':
                    sec =3D matchInt;
                    if (outOfRange(sec, 0, 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':
                case 'ff':
                case 'fff':
                    msec =3D matchInt * Math.pow(10, 3-clength);
                    if (outOfRange(msec, 0, 999)) return null;
                    break;
                case 'ddd':
                case 'dddd':
                    weekDay =3D cultureInfo._getDayIndex(matchGroup, =
clength =3D=3D=3D 3);
                    if (outOfRange(weekDay, 0, 6)) return null;
                    break;
                case 'zzz':
                    var offsets =3D matchGroup.split(/:/);
                    if (offsets.length !=3D=3D 2) return null;
                    hourOffset =3D parseInt(offsets[0], 10);
                    if (outOfRange(hourOffset, -12, 13)) return null;
                    var minOffset =3D parseInt(offsets[1], 10);
                    if (outOfRange(minOffset, 0, 59)) return null;
                    tzMinOffset =3D (hourOffset * 60) + =
(matchGroup.startsWith('-')? -minOffset : minOffset);
                    break;
                case 'z': case 'zz':
                    hourOffset =3D matchInt;
                    if (outOfRange(hourOffset, -12, 13)) return null;
                    tzMinOffset =3D hourOffset * 60;
                    break;
                case 'g': case 'gg':
                    var eraName =3D matchGroup;
                    if (!eraName || !dtf.eras) return null;
                    eraName =3D eraName.toLowerCase().trim();
                    for (var i =3D 0, l =3D dtf.eras.length; i < l; i =
+=3D 4) {
                        if (eraName =3D=3D=3D dtf.eras[i + =
1].toLowerCase()) {
                            era =3D i;
                            break;
                        }
                    }
                    if (era =3D=3D=3D null) return null;
                    break;
            }
        }
    }
    var result =3D new Date(), defaultYear, convert =3D =
dtf.Calendar.convert;
    defaultYear =3D convert ? convert.fromGregorian(result)[0] : =
result.getFullYear();
    if (year =3D=3D=3D null) {
        year =3D defaultYear;
    }
    else if (dtf.eras) {
        year +=3D dtf.eras[(era || 0) + 3];
    }
    if (month =3D=3D=3D null) {
        month =3D 0;
    }
    if (date =3D=3D=3D null) {
        date =3D 1;
    }
    if (convert) {
        result =3D convert.toGregorian(year, month, date);
        if (result =3D=3D=3D null) return null;
    }
    else {
        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;
}

$prototype =3D $type.prototype;
$prototype.format =3D function Date$format(format) {
    /// <summary locid=3D"M:J#Date.format">Format a date using the =
invariant culture.</summary>
    /// <param name=3D"format" type=3D"String">Format string.</param>
    /// <returns type=3D"String">Formatted date.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.InvariantCulture);
}

$prototype.localeFormat =3D function Date$localeFormat(format) {
    /// <summary locid=3D"M:J#Date.localeFormat">Format a date using the =
current culture.</summary>
    /// <param name=3D"format" type=3D"String">Format string.</param>
    /// <returns type=3D"String">Formatted date.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.CurrentCulture);
}

$prototype._toFormattedString =3D function =
Date$_toFormattedString(format, cultureInfo) {
    var dtf =3D cultureInfo.dateTimeFormat,
        convert =3D dtf.Calendar.convert;
    if (!format || !format.length || (format =3D=3D=3D 'i')) {
        var ret;
        if (cultureInfo && cultureInfo.name.length) {
            if (convert) {
                ret =3D this._toFormattedString(dtf.FullDateTimePattern, =
cultureInfo);
            }
            else {
                var eraDate =3D new Date(this.getTime());
                var era =3D getEra(this, dtf.eras);
                eraDate.setFullYear(getEraYear(this, dtf, era));
                ret =3D eraDate.toLocaleString();
            }
        }
        else {
            ret =3D this.toString();
        }
        return ret;
    }

    var eras =3D dtf.eras,
        sortable =3D (format =3D=3D=3D "s");
    format =3D Date._expandFormat(dtf, format);

    ret =3D [];
    var hour;

    var zeros =3D ['0','00','000'];
    function padZeros(num, c) {
        var s =3D num+'';
        return ((c > 1) && (s.length < c)) ? (zeros[c-2]+s).substr(-c) : =
s;
    }

    var foundDay, checkedDay, dayPartRegExp =3D =
/([^d]|^)(d|dd)([^d]|$)/g;
    function hasDay() {
        if (foundDay || checkedDay) {
            return foundDay;
        }
        foundDay =3D dayPartRegExp.test(format);
        checkedDay =3D true;
        return foundDay;
    }
   =20
    var quoteCount =3D 0,
        tokenRegExp =3D Date._getTokenRegExp(),
        converted;
    if (!sortable && convert) {
        converted =3D convert.fromGregorian(this);
    }
    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 Sys._appendPreOrPostMatch(preMatch, ret);

        if (!ar) break;

        if (quoteCount % 2) {
            ret.push(ar[0]);
            continue;
        }
       =20
        function getPart(date, part) {
            if (converted) {
                return converted[part];
            }
            switch (part) {
                case 0: return date.getFullYear();
                case 1: return date.getMonth();
                case 2: return date.getDate();
            }
        }

        var current =3D ar[0],
            clength =3D current.length;

        switch (current) {
        case "ddd":
        case "dddd":
            names =3D (clength =3D=3D=3D 3) ? dtf.AbbreviatedDayNames : =
dtf.DayNames;
            ret.push(names[this.getDay()]);
            break;
        case "d":
        case "dd":
            foundDay =3D true;
            ret.push(padZeros(getPart(this, 2), clength));
            break;
        case "MMM":
        case "MMMM":
            var namePrefix =3D (clength =3D=3D=3D 3 ? "Abbreviated" : =
""),
                genitiveNames =3D dtf[namePrefix + =
"MonthGenitiveNames"],
                names =3D dtf[namePrefix + "MonthNames"],
                part =3D getPart(this, 1);
            ret.push((genitiveNames && hasDay())
                ? genitiveNames[part]
                : names[part]);
            break;
        case "M":
        case "MM":
            ret.push(padZeros(getPart(this, 1) + 1, clength));
            break;
        case "y":
        case "yy":
        case "yyyy":
            part =3D converted ? converted[0] : getEraYear(this, dtf, =
getEra(this, eras), sortable);
            if (clength < 4) {
                part =3D part % 100;
            }
            ret.push(padZeros(part, clength));
            break;
        case "h":
        case "hh":
            hour =3D this.getHours() % 12;
            if (hour =3D=3D=3D 0) hour =3D 12;
            ret.push(padZeros(hour, clength));
            break;
        case "H":
        case "HH":
            ret.push(padZeros(this.getHours(), clength));
            break;
        case "m":
        case "mm":
            ret.push(padZeros(this.getMinutes(), clength));
            break;
        case "s":
        case "ss":
            ret.push(padZeros(this.getSeconds(), clength));
            break;
        case "t":
        case "tt":
            part =3D (this.getHours() < 12) ? dtf.AMDesignator : =
dtf.PMDesignator;
            ret.push(clength =3D=3D=3D 1 ? part.charAt(0) : part);
            break;
        case "f":
        case "ff":
        case "fff":
            ret.push(padZeros(this.getMilliseconds(), 3).substr(0, =
clength));
            break;
        case "z":=20
        case "zz":
            hour =3D this.getTimezoneOffset() / 60;
            ret.push(((hour <=3D 0) ? '+' : '-') + =
padZeros(Math.floor(Math.abs(hour)), clength));
            break;
        case "zzz":
            hour =3D this.getTimezoneOffset() / 60;
            ret.push(((hour <=3D 0) ? '+' : '-') + =
padZeros(Math.floor(Math.abs(hour)), 2) +
                ":" + padZeros(Math.abs(this.getTimezoneOffset() % 60), =
2));
            break;
        case "g":
        case "gg":
            if (dtf.eras) {
                ret.push(dtf.eras[getEra(this, eras) + 1]);
            }
            break;
        case "/":
            ret.push(dtf.DateSeparator);
            break;
        }
    }
    return ret.join('');
}
String.localeFormat =3D function String$localeFormat(format, args) {
    /// <summary locid=3D"M:J#String.localeFormat">Replaces the format =
items in a specified String with the text equivalents of the values of   =
corresponding object instances. The current culture will be used to =
format dates and numbers.</summary>
    /// <param name=3D"format" type=3D"String">A format string.</param>
    /// <param name=3D"args" parameterArray=3D"true" =
mayBeNull=3D"true">The objects to format.</param>
    /// <returns type=3D"String">A copy of format in which the format =
items have been replaced by the   string equivalent of the corresponding =
instances of object arguments.</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);
}
var formattingPatterns =3D {
    P: ["Percent", ["-n %", "-n%", "-%n"], ["n %", "n%", "%n" ], 100],
    N: ["Number",["(n)","-n","- n","n-","n -"], null, 1],
    C: =
["Currency",["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n =
$","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"],["$n","n$","$ =
n","n $"], 1]
};

Sys._toFormattedString =3D function _toFormattedString(format, =
cultureInfo) {
    if (!format || !format.length || (format =3D=3D=3D 'i')) {
        return (cultureInfo && cultureInfo.name.length) ?
            this.toLocaleString() :
            this.toString();
    }
   =20
    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) {
        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+'';
        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) {
            right =3D decimalChar +
                ((right.length > precision) ? right.slice(0, precision) =
: zeroPad(right, precision, false));
        }
        else {
            right =3D "";
        }

        var stringIndex =3D numberString.length-1;
        var ret =3D "";
        while (stringIndex >=3D 0) {
            if (curSize =3D=3D=3D 0 || curSize > stringIndex) {
                return numberString.slice(0, stringIndex + 1) +
                    (ret.length ? (sep + ret + right) : right);
            }

            ret =3D numberString.slice(stringIndex - curSize + 1, =
stringIndex + 1) +
                (ret.length ? (sep+ret) : "");

            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);

    format =3D format || "D";

    var precision =3D -1;
    if (format.length > 1) precision =3D parseInt(format.slice(1), 10);

    var pattern,
        current =3D format.charAt(0).toUpperCase();   =20
    switch (current) {
    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 "N":
    case "P":
        current =3D formattingPatterns[current];
        var name =3D current[0];
        pattern =3D (this < 0) ? current[1][nf[name+"NegativePattern"]] =
: (current[2] ? current[2][nf[name+"PositivePattern"]] : "n");
        if (precision =3D=3D=3D -1) precision =3D =
nf[name+"DecimalDigits"];
        number =3D expandNumber(Math.abs(this)*current[3], precision, =
nf[name+"GroupSizes"], nf[name+"GroupSeparator"], =
nf[name+"DecimalSeparator"]);
        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 "-":
            if (/[1-9]/.test(number)) {
                ret +=3D nf.NegativeSign;
            }
            break;
        case "%":
            ret +=3D nf.PercentSymbol;
            break;
        }
    }

    return ret;
}

$type =3D Number;
$type.parseLocale =3D function Number$parseLocale(value) {
    /// <summary locid=3D"M:J#Number.parseLocale">Creates a number from =
its locale string representation.</summary>
    /// <param name=3D"value" type=3D"String">A string that can parse to =
a number.</param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ], false);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.CurrentCulture);
}
$type.parseInvariant =3D function Number$parseInvariant(value) {
    /// <summary locid=3D"M:J#Number.parseInvariant">Creates a number =
from its string representation.</summary>
    /// <param name=3D"value" type=3D"String">A string that can parse to =
a number.</param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ], false);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.InvariantCulture);
}
$type._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 decSep =3D numFormat.NumberDecimalSeparator
    var decimalPos =3D intAndFraction.indexOf(decSep);
    if (decimalPos < 0) {
        integer =3D intAndFraction;
        fraction =3D null;
    }
    else {
        integer =3D intAndFraction.substr(0, decimalPos);
        fraction =3D intAndFraction.substr(decimalPos + decSep.length);
    }
   =20
    var numGroupSep =3D numFormat.NumberGroupSeparator
    integer =3D integer.split(numGroupSep).join('');
    var altNumGroupSeparator =3D numGroupSep.replace(/\u00A0/g, " ");
    if (numGroupSep !=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;
}
$type._parseNumberNegativePattern =3D function =
Number$_parseNumberNegativePattern(value, numFormat, =
numberNegativePattern) {
    var neg =3D numFormat.NegativeSign;
    var pos =3D numFormat.PositiveSign;   =20
    switch (numberNegativePattern) {
        case 4:
            neg =3D ' ' + neg;
            pos =3D ' ' + pos;
        case 3:
            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:
            neg +=3D ' ';
            pos +=3D ' ';
        case 1:
            if (value.startsWith(neg)) {
                return ['-', value.substr(neg.length)];
            }
            else if (value.startsWith(pos)) {
                return ['+', value.substr(pos.length)];
            }
            break;
        case 0:
            if (value.startsWith('(') && value.endsWith(')')) {
                return ['-', value.substr(1, value.length - 2)];
            }
            break;
    }
    return ['', value];
}

$prototype =3D $type.prototype;
$prototype.format =3D function Number$format(format) {
    /// <summary locid=3D"M:J#Number.format">Format a number using the =
invariant culture.</summary>
    /// <param name=3D"format" type=3D"String">Format string.</param>
    /// <returns type=3D"String">Formatted number.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return Sys._toFormattedString.call(this, format, =
Sys.CultureInfo.InvariantCulture);
}
$prototype.localeFormat =3D function Number$localeFormat(format) {
    /// <summary locid=3D"M:J#Number.localeFormat">Format a number using =
the current culture.</summary>
    /// <param name=3D"format" type=3D"String">Format string.</param>
    /// <returns type=3D"String">Formatted number.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return Sys._toFormattedString.call(this, format, =
Sys.CultureInfo.CurrentCulture);
}
function toUpper(value) {
    return value.split("\u00A0").join(' ').toUpperCase();
}
function toUpperArray(arr) {
    var result =3D [];
    foreach(arr, function(value, i) {
        result[i] =3D toUpper(value);
    });
    return result;
}

function clone(obj) {
    var objNew =3D {};
    forIn(obj, function(value, field) {
        objNew[field] =3D (value instanceof Array) ? (value.length =
=3D=3D=3D 1 ? [value] : Array.apply(null, value)) :
            ((typeof(value) =3D=3D=3D "object") ? clone(value) : value);
    });
    return objNew;
}

$type =3D Sys.CultureInfo =3D function CultureInfo(name, numberFormat, =
dateTimeFormat) {
    /// <summary locid=3D"M:J#Sys.CultureInfo.#ctor"></summary>
    /// <param name=3D"name" type=3D"String">CultureInfo name.</param>
    /// <param name=3D"numberFormat" type=3D"Object">CultureInfo number =
format information.</param>
    /// <param name=3D"dateTimeFormat" type=3D"Object">CultureInfo date =
time format information.</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;
}
$type.prototype =3D {
    _getDateTimeFormats: function CultureInfo$_getDateTimeFormats() {
        var formats =3D this._dateTimeFormats;
        if (!formats) {
            var dtf =3D this.dateTimeFormat;
            this._dateTimeFormats =3D formats =3D
              [ dtf["MonthDayPattern"],
                dtf["YearMonthPattern"],
                dtf["ShortDatePattern"],
                dtf["ShortTimePattern"],
                dtf["LongDatePattern"],
                dtf["LongTimePattern"],
                dtf["FullDateTimePattern"],
                dtf["RFC1123Pattern"],
                dtf["SortableDateTimePattern"],
                dtf["UniversalSortableDateTimePattern"] ];
        }
        return formats;
    },
    _getMonthIndex: function CultureInfo$_getMonthIndex(value, abbr) {
        var name =3D abbr ? "_upperAbbrMonths" : "_upperMonths",
            genitiveName =3D name + "Genitive",
            upperMonths =3D this[name];
        if (!upperMonths) {
            var prefix =3D (abbr ? "Abbreviated" : "");
            this[name] =3D =
toUpperArray(this.dateTimeFormat[prefix+"MonthNames"]);
            this[genitiveName] =3D =
toUpperArray(this.dateTimeFormat[prefix+"MonthGenitiveNames"]);
        }
        value =3D toUpper(value);
        var i =3D indexOf(this[name], value);
        if (i < 0) {
            i =3D indexOf(this[genitiveName], value);
        }
        return i;
    },   =20
    _getDayIndex: function CultureInfo$_getDayIndex(value, abbr) {
        var name =3D abbr ? "_upperAbbrDays" : "_upperDays",
            upperDays =3D this[name];
        if (!upperDays) {
            this[name] =3D toUpperArray(this.dateTimeFormat[(abbr ? =
"Abbreviated" : "")+"DayNames"]);
        }
        return indexOf(this[name], toUpper(value));
    }
}
$type.registerClass('Sys.CultureInfo');

$type._parse =3D function(value) {
    var dtf =3D value.dateTimeFormat;
    if (dtf && !dtf.eras) {
        dtf.eras =3D value.eras;
    }
    return new Sys.CultureInfo(value.name, value.numberFormat, dtf);
}
$type._setup =3D function() {
    var cultureInfo =3D window.__cultureInfo,
        monthNames =3D =
["January","February","March","April","May","June","July","August","Septe=
mber","October","November","December",""],
        shortMonthNames =3D =
["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",=
""],
        invariant =3D =
{"name":"","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSepa=
rator":".","CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupS=
izes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"\u00A4","NaNSymb=
ol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentP=
ositivePattern":0,"PercentNegativePattern":0,"NegativeInfinitySymbol":"-I=
nfinity","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparat=
or":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveI=
nfinitySymbol":"Infinity","PositiveSign":"+","PercentDecimalDigits":2,"Pe=
rcentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%=
","PerMilleSymbol":"\u2030","NativeDigits":["0","1","2","3","4","5","6","=
7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM",=
"Calendar":{"MinSupportedDateTime":"@-62135568000000@","MaxSupportedDateT=
ime":"@253402300799999@","AlgorithmType":1,"CalendarType":1,"Eras":[1],"T=
woDigitYearMax":2029},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWee=
kRule":0,"FullDateTimePattern":"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":shortMonthNames,"MonthNames":monthNames,"NativeCalendarN=
ame":"Gregorian =
Calendar","AbbreviatedMonthGenitiveNames":Array.clone(shortMonthNames),"M=
onthGenitiveNames":Array.clone(monthNames)},"eras":[1,"A.D.",null,0]};
    this.InvariantCulture =3D this._parse(invariant);
    switch(typeof(cultureInfo)) {
        case "string":
            cultureInfo =3D window.eval("(" + cultureInfo + ")");
        case "object":
            this.CurrentCulture =3D this._parse(cultureInfo);
            delete __cultureInfo;   =20
            break;
        default:
            cultureInfo =3D clone(invariant);
            cultureInfo.name =3D "en-US";
            cultureInfo.numberFormat.CurrencySymbol =3D "$";
            var dtf =3D cultureInfo.dateTimeFormat;
            dtf.FullDatePattern =3D "dddd, MMMM dd, yyyy h:mm:ss tt";
            dtf.LongDatePattern =3D "dddd, MMMM dd, yyyy";
            dtf.LongTimePattern =3D "h:mm:ss tt";
            dtf.ShortDatePattern =3D "M/d/yyyy";
            dtf.ShortTimePattern =3D "h:mm tt";
            dtf.YearMonthPattern =3D "MMMM, yyyy";
            this.CurrentCulture =3D this._parse(cultureInfo);
            break;
    }
}

$type._setup();





Type.registerNamespace('Sys.Serialization');

$type =3D Sys.Serialization.JavaScriptSerializer =3D function =
Serialization$JavaScriptSerializer() {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.#ctor">Provides =
serialization from JavaScript object to JavaScript object =
notation.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
$type.registerClass('Sys.Serialization.JavaScriptSerializer');

$type._esc =3D {
    charsRegExs: { '"': /\"/g, '\\': /\\/g }, /*"*/
    chars: ['\\', '"'],
    dateRegEx: =
/(^|[^\\])\"\\\/Date\((-?[0-9]+)(?:[a-zA-Z]|(?:\+|-)[0-9]{4})?\)\\\/\"/g,=
 /* " */
    escapeChars: {'\\':'\\\\', '"':'\\"', "\b":"\\b", "\t":"\\t", =
"\n":"\\n", "\f":"\\f", "\r":"\\r"},
    escapeRegExG: /[\"\\\x00-\x1F]/g,
    escapeRegEx: /[\"\\\x00-\x1F]/i,
    jsonRegEx: /[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/g,
    jsonStringRegEx: /\"(\\.|[^\"\\])*\"/g /*"*/
};
$type._init =3D function() {
    var esc =3D this._esc,
        toEsc =3D esc.chars,
        toEscRE =3D esc.charsRegExs,
        escChars =3D esc.escapeChars;
    for (var i =3D 0; i < 32; i++) {
        var c =3D String.fromCharCode(i);
        toEsc[i+2] =3D c;
        toEscRE[c] =3D new RegExp(c, 'g');
        escChars[c] =3D escChars[c] || ("\\u" + ("000" + =
i.toString(16)).slice(-4));
    }
    this._load =3D true;
}
$type._serializeNumberWithBuilder =3D function(object, stringBuilder) {
    if (!isFinite(object)) {
        throw =
Error.invalidOperation(Sys.Res.cannotSerializeNonFiniteNumbers);
    }
    stringBuilder.append(String(object));
}
$type._serializeStringWithBuilder =3D function(string, stringBuilder) {
    stringBuilder.append('"');
    var esc =3D this._esc;
    if (esc.escapeRegEx.test(string)) {
        if (!this._load) {
            this._init();
        }
        if (string.length < 128) {
            string =3D string.replace(esc.escapeRegExG,
                function(x) { return esc.escapeChars[x]; });
        }
        else {
            for (var i =3D 0; i < 34; i++) {
                var c =3D esc.chars[i];
                if (string.indexOf(c) !=3D=3D -1) {
                    var escChar =3D esc.escapeChars[c];
                    string =3D (isBrowser("Opera") || =
isBrowser("Firefox")) ?
                        string.split(c).join(escChar) :
                        string.replace(esc.charsRegExs[c], escChar);
                }
            }
       }
    }
    stringBuilder.append(string).append('"');
}
$type._serializeWithBuilder =3D function(object, stringBuilder, sort, =
prevObjects) {
    var i;
    switch (typeof object) {
    case 'object':
        if (object) {
            if (prevObjects){
                if (Sys._indexOf(prevObjects, object) !=3D=3D -1) {
                    throw =
Error.invalidOperation(Sys.Res.cannotSerializeObjectWithCycle);
                }
            }
            else {
                prevObjects =3D [];
            }
            try {
                prevObjects.push(object);
               =20
                if (Number.isInstanceOfType(object)) {
                    this._serializeNumberWithBuilder(object, =
stringBuilder);
                }
                else if (Boolean.isInstanceOfType(object)) {
                    stringBuilder.append(object);
                }
                else if (String.isInstanceOfType(object)) {
                    this._serializeStringWithBuilder(object, =
stringBuilder);
                }
           =20
                else if (object instanceof Array) {
                    stringBuilder.append('[');
                  =20
                    for (i =3D 0; i < object.length; ++i) {
                        if (i) {
                            stringBuilder.append(',');
                        }
                        this._serializeWithBuilder(object[i], =
stringBuilder, false, prevObjects);
                    }
                    stringBuilder.append(']');
                }
                else {
                    if (Date.isInstanceOfType(object)) {
                        stringBuilder.append('"\\/Date(').
                            append(object.getTime()).
                            append(')\\/"');
                        break;
                    }

                    var properties =3D [],
                        propertyCount =3D 0;
                    for (var name in object) {
                        if (name.charAt(0) !=3D=3D '$') {
                            if (name =3D=3D=3D '__type' && =
propertyCount) {
                                properties[propertyCount++] =3D =
properties[0];
                                properties[0] =3D name;
                            }
                            else {
                                properties[propertyCount++] =3D name;
                            }
                        }
                    }
                    if (sort) properties.sort();

                    stringBuilder.append('{');
                    =20
                    var needComma;
                    for (i=3D0; i < propertyCount; i++) {
                        var prop =3D properties[i], value =3D =
object[prop],
                            type =3D typeof(value);
                        if (type !=3D=3D 'undefined' && type !=3D=3D =
'function') {
                            if (needComma) {
                                stringBuilder.append(',');
                            }
                            this._serializeWithBuilder(prop, =
stringBuilder, sort, prevObjects);
                            stringBuilder.append(':');
                            this._serializeWithBuilder(value, =
stringBuilder, sort, prevObjects);
                            needComma =3D true;
                        }
                    }
                stringBuilder.append('}');
                }
            }
            finally {
                Array.removeAt(prevObjects, prevObjects.length - 1);
            }
        }
        else {
            stringBuilder.append('null');
        }
        break;

    case 'number':
        this._serializeNumberWithBuilder(object, stringBuilder);
        break;

    case 'string':
        this._serializeStringWithBuilder(object, stringBuilder);
        break;

    case 'boolean':
        stringBuilder.append(object);
        break;

    default:
        stringBuilder.append('null');
        break;
    }
}

$type.serialize =3D function JavaScriptSerializer$serialize(object) {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.serialize">Generates =
a JSON string from an object.</summary>
    /// <param name=3D"object" mayBeNull=3D"true">The object to =
serialize.</param>
    /// <returns type=3D"String">The JSON string representation of the =
object.</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();
}

$type.deserialize =3D function JavaScriptSerializer$deserialize(data, =
secure) {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.deserialize">Deserial=
izes a JSON string.</summary>
    /// <param name=3D"data" type=3D"String">The JSON string to =
eval.</param>
    /// <param name=3D"secure" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">True if the method should perform JSON conformance =
checks before evaluating. False by default.</param>
    /// <returns>The results of eval applied to data.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "data", type: String},
        {name: "secure", type: Boolean, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if (!data.length) throw Error.argument('data', =
Sys.Res.cannotDeserializeEmptyString);
    var er, esc =3D Sys.Serialization.JavaScriptSerializer._esc;
    try {   =20
        var exp =3D data.replace(esc.dateRegEx, "$1new Date($2)");
       =20
        if (secure && =
esc.jsonRegEx.test(exp.replace(esc.jsonStringRegEx, ''))) throw null;

        return window.eval('(' + exp + ')');
    }
    catch (er) {
         throw Error.argument('data', =
Sys.Res.cannotDeserializeInvalidJson);
    }
}


Type.registerNamespace('Sys.UI');

$type =3D Sys.EventHandlerList =3D function EventHandlerList() {
    /// <summary locid=3D"M:J#Sys.EventHandlerList.#ctor">The =
EventHandlerList class contains a dictionary of multicast =
events.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._list =3D {};
}

$type.prototype =3D {
    _addHandler: function EventHandlerList$_addHandler(id, handler) {
        Array.add(this._getEvent(id, true), handler);
    },
    addHandler: function EventHandlerList$addHandler(id, handler) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.addHandler">The =
addHandler method adds a handler to the event identified by =
id.</summary>
        /// <param name=3D"id" type=3D"String">The identifier for the =
event.</param>
        /// <param name=3D"handler" type=3D"Function">The handler to add =
to the event.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        this._addHandler(id, handler);
    },
    _removeHandler: function EventHandlerList$_removeHandler(id, =
handler) {
        var evt =3D this._getEvent(id);
        if (!evt) return;
        Array.remove(evt, handler);
    },
    _removeHandlers: function EventHandlerList$_removeHandlers(id) {
        if (!id) {
            this._list =3D {};
        }
        else {
            var evt =3D this._getEvent(id);
            if (!evt) return;
            evt.length =3D 0;
        }
    },
    removeHandler: function EventHandlerList$removeHandler(id, handler) =
{
        /// <summary =
locid=3D"M:J#Sys.EventHandlerList.removeHandler">The removeHandler =
method removes a handler to the event identified by id.</summary>
        /// <param name=3D"id" type=3D"String">The identifier for the =
event.</param>
        /// <param name=3D"handler" type=3D"Function">The handler to =
remove from the event.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        this._removeHandler(id, handler);
    },
    getHandler: function EventHandlerList$getHandler(id) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.getHandler">The =
getHandler method returns a single function that will call all   =
handlers sequentially for the specified event.</summary>
        /// <param name=3D"id" type=3D"String">The identifier for the =
event.</param>
        /// <returns type=3D"Function">A function that will call each =
handler sequentially.</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) 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);
            }
        };
    },
    _getEvent: function EventHandlerList$_getEvent(id, create) {
        var e =3D this._list[id];
        if (!e) {
            if (!create) return null;
            this._list[id] =3D e =3D [];
        }
        return e;
    }
}
$type.registerClass('Sys.EventHandlerList');
$type =3D Sys.CommandEventArgs =3D function =
CommandEventArgs(commandName, commandArgument, commandSource, =
commandEvent) {
    /// <summary locid=3D"M:J#Sys.CommandEventArgs.#ctor"></summary>
    /// <param name=3D"commandName" type=3D"String">The command =
name.</param>
    /// <param name=3D"commandArgument" mayBeNull=3D"true">The command =
arguments.</param>
    /// <param name=3D"commandSource" mayBeNull=3D"true">The command =
source.</param>
    /// <param name=3D"commandEvent" type=3D"Sys.UI.DomEvent" =
mayBeNull=3D"true" optional=3D"true">The DOM event that caused the =
command, if any.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "commandName", type: String},
        {name: "commandArgument", mayBeNull: true},
        {name: "commandSource", mayBeNull: true},
        {name: "commandEvent", type: Sys.UI.DomEvent, mayBeNull: true, =
optional: true }
    ]);
    if (e) throw e;
    Sys.CommandEventArgs.initializeBase(this);
    this._commandName =3D commandName;
    this._commandArgument =3D commandArgument;
    this._commandSource =3D commandSource;
    this._commandEvent =3D commandEvent;
}
$type.prototype =3D {
    get_commandName: function CommandEventArgs$get_commandName() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.CommandEventArgs.commandName">The command name.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._commandName || null;
    },
    get_commandArgument: function CommandEventArgs$get_commandArgument() =
{
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.CommandEventArgs.commandArgument">The command =
arguments.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._commandArgument;
    },
    get_commandSource: function CommandEventArgs$get_commandSource() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.CommandEventArgs.commandSource">The command =
source.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._commandSource || null;
    },
    get_commandEvent: function CommandEventArgs$get_commandEvent() {
        /// <value mayBeNull=3D"true" type=3D"Sys.UI.DomEvent" =
locid=3D"P:J#Sys.CommandEventArgs.commandEvent">The DOM event that =
caused the command, if any.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._commandEvent || null;
    }
}
$type.registerClass("Sys.CommandEventArgs", Sys.CancelEventArgs);
$type =3D Sys.INotifyPropertyChange =3D function INotifyPropertyChange() =
{
    /// <summary locid=3D"M:J#Sys.INotifyPropertyChange.#ctor">Implement =
this interface to become a provider of property change =
notifications.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
$type.prototype =3D {
    add_propertyChanged: function =
INotifyPropertyChange$add_propertyChanged(handler) {
    /// <summary =
locid=3D"E:J#Sys.INotifyPropertyChange.propertyChanged"></summary>
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    },
    remove_propertyChanged: function =
INotifyPropertyChange$remove_propertyChanged(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
}
$type.registerInterface('Sys.INotifyPropertyChange');
$type =3D Sys.PropertyChangedEventArgs =3D function =
PropertyChangedEventArgs(propertyName) {
    /// <summary =
locid=3D"M:J#Sys.PropertyChangedEventArgs.#ctor">Describes property =
changes.</summary>
    /// <param name=3D"propertyName" type=3D"String">The name of the =
property that changed.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "propertyName", type: String}
    ]);
    if (e) throw e;
    Sys.PropertyChangedEventArgs.initializeBase(this);
    this._propertyName =3D propertyName;
}
 $type.prototype =3D {
    get_propertyName: function =
PropertyChangedEventArgs$get_propertyName() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.PropertyChangedEventArgs.propertyName">The name of the =
property that changed.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._propertyName;
    }
}
$type.registerClass('Sys.PropertyChangedEventArgs', Sys.EventArgs);
$type =3D Sys.INotifyDisposing =3D function INotifyDisposing() {
    /// <summary locid=3D"M:J#Sys.INotifyDisposing.#ctor">Implement this =
interface if the class exposes an event to notify when it's =
disposing.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
$type.prototype =3D {
    add_disposing: function INotifyDisposing$add_disposing(handler) {
    /// <summary locid=3D"E:J#Sys.INotifyDisposing.disposing"></summary>
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    },
    remove_disposing: function =
INotifyDisposing$remove_disposing(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
}
$type.registerInterface("Sys.INotifyDisposing");
$type =3D Sys.Component =3D function Component() {
    /// <summary locid=3D"M:J#Sys.Component.#ctor">Base class for =
Control, Behavior and any object that wants its lifetime to be =
managed.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (Sys.Application) Sys.Application.registerDisposableObject(this);
}
$type.prototype =3D {
    _idSet: false,
    get_events: function Component$get_events() {
        /// <value type=3D"Sys.EventHandlerList" =
locid=3D"P:J#Sys.Component.events">The collection of event handlers for =
this behavior.  This property should only be used by derived behaviors  =
and should not be publicly called by other code.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return Sys.Observer._getContext(this, true).events;
    },
    get_id: function 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 || null;
    },
    set_id: function 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;
    },
    get_isInitialized: function 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;
    },
    get_isUpdating: function 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;
    },
    add_disposing: function Component$add_disposing(handler) {
        /// <summary locid=3D"E:J#Sys.Component.disposing"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._addHandler("disposing", handler);
    },
    remove_disposing: function Component$remove_disposing(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._removeHandler("disposing", handler);
    },
    add_propertyChanged: function Component$add_propertyChanged(handler) =
{
        /// <summary =
locid=3D"E:J#Sys.Component.propertyChanged"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._addHandler("propertyChanged", handler);
    },
    remove_propertyChanged: function =
Component$remove_propertyChanged(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._removeHandler("propertyChanged", handler);
    },
    _addHandler: function Component$_addHandler(eventName, handler) {
        Sys.Observer.addEventHandler(this, eventName, handler);
    },
    _removeHandler: function Component$_removeHandler(eventName, =
handler) {
        Sys.Observer.removeEventHandler(this, eventName, handler);
    },
    beginUpdate: function Component$beginUpdate() {
        this._updating =3D true;
    },
    dispose: function Component$dispose() {
        Sys.Observer.raiseEvent(this, "disposing")
        Sys.Observer.clearEventHandlers(this);
        Sys.Application.unregisterDisposableObject(this);
        Sys.Application.removeComponent(this);
    },
    endUpdate: function Component$endUpdate() {
        this._updating =3D false;
        if (!this._initialized) this.initialize();
        this.updated();
    },
    initialize: function Component$initialize() {
        this._initialized =3D true;
    },
    raisePropertyChanged: function =
Component$raisePropertyChanged(propertyName) {
        /// <summary =
locid=3D"M:J#Sys.Component.raisePropertyChanged">Raises a change =
notification event.</summary>
        /// <param name=3D"propertyName" type=3D"String">The name of the =
property that changed.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyName", type: String}
        ]);
        if (e) throw e;
        Sys.Observer.raisePropertyChanged(this, propertyName);
    },
    updated: function Component$updated() {
    }
}
$type.registerClass('Sys.Component', null, Sys.IDisposable, =
Sys.INotifyPropertyChange, Sys.INotifyDisposing);

$type._setProperties =3D function Component$_setProperties(target, =
properties) {
    /// <summary locid=3D"M:J#Sys.Component._setProperties">Recursively =
sets properties on an object.</summary>
    /// <param name=3D"target">The object on which to set the property =
values.</param>
    /// <param name=3D"properties">A JSON object containing the property =
values.</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 (!val || (typeof(val) !=3D=3D 'object') || (isObject && =
!targetVal)) {
                target[name] =3D val;
            }
            else {
                this._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));
                this._setProperties(current, val);
            }
            else {
                throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, =
name));
            }
        }
    }
    if (isComponent) target.endUpdate();
}

$type._setReferences =3D function Component$_setReferences(component, =
references) {
    var reference, refs =3D {};
    forIn(references, function(id, name) {
        refs[name] =3D reference =3D $find(id);
        if (!reference) throw =
Error.invalidOperation(String.format(Sys.Res.referenceNotFound, id));
    });
    Sys._set(component, refs);
}

$create =3D $type.create =3D function Component$create(type, properties, =
events, references, element) {
    /// <summary locid=3D"M:J#Sys.Component.create">Instantiates a =
component of the specified type, attaches it to the specified element if =
it's  a Control or Behavior, sets the properties as described by the =
specified JSON object,  then calls initialize.</summary>
    /// <param name=3D"type" type=3D"Type">The type of the component to =
create.</param>
    /// <param name=3D"properties" optional=3D"true" =
mayBeNull=3D"true">A JSON object that describes the properties and their =
values.</param>
    /// <param name=3D"events" optional=3D"true" mayBeNull=3D"true">A =
JSON object that describes the events and their handlers.</param>
    /// <param name=3D"references" optional=3D"true" =
mayBeNull=3D"true">A JSON object that describes the properties that are =
references to other components.  The contents of this object consists of =
name/id pairs.  If in a two-pass creation, the setting of these =
properties will be delayed until the second pass.</param>
    /// <param name=3D"element" domElement=3D"true" optional=3D"true" =
mayBeNull=3D"true">The DOM element the component must be attached =
to.</param>
    /// <returns type=3D"Object">The component instance.</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.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());
    callIf(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]);
        }
    }
    Sys.Component._register(component, references);
    return component;
}
$type._register =3D function Component$_register(component, references, =
dontUpdate) {
    var ret;
    if (Sys.Component.isInstanceOfType(component)) {
        ret =3D true;
        var app =3D Sys.Application;
        if (component.get_id()) {
            app.addComponent(component);
        }
        if (app.get_isCreatingComponents()) {
            app._createdComponents.push(component);
            if (references) {
                app._addComponentToSecondPass(component, references);
            }
            else if (!dontUpdate) {
                component.endUpdate();
            }
        }
        else {
            if (references) {
                Sys.Component._setReferences(component, references);
            }
            if (!dontUpdate) {
                component.endUpdate();
            }
        }
    }
    return ret;
}

Sys._getComponent =3D function _getComponent(found, selector, context) {
    var component =3D Sys.Application.findComponent(selector);
    if (component) {
        found.push(component);
    }
}

Sys._2Pass =3D function _2Pass(callback) {
    var app =3D Sys.Application,
        useTwoPass =3D !app.get_isCreatingComponents();
    if (useTwoPass) app.beginCreateComponents();
    foreach(callback, function(c) { c() });
    if (useTwoPass) app.endCreateComponents();
}
$type =3D Sys.UI.MouseButton =3D function MouseButton() {
    /// <summary locid=3D"M:J#Sys.UI.MouseButton.#ctor">Describes mouse =
buttons. The values are those from the DOM standard, which are different =
from the IE values.</summary>
    /// <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();
}
$type.prototype =3D {
    leftButton: 0,
    middleButton: 1,
    rightButton: 2
}
$type.registerEnum("Sys.UI.MouseButton");
$type =3D Sys.UI.Key =3D function Key() {
    /// <summary locid=3D"M:J#Sys.UI.Key.#ctor">Describes key =
codes.</summary>
    /// <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();
}
$type.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
}
$type.registerEnum("Sys.UI.Key");
$type =3D Sys.UI.Point =3D function Point(x, y) {
    /// <summary locid=3D"M:J#Sys.UI.Point.#ctor"></summary>
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></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, integer: true},
        {name: "y", type: Number, integer: true}
    ]);
    if (e) throw e;
    this.x =3D x;
    this.y =3D y;
}
$type.registerClass('Sys.UI.Point');
$type =3D Sys.UI.Bounds =3D function Bounds(x, y, width, height) {
    /// <summary locid=3D"M:J#Sys.UI.Bounds.#ctor"></summary>
    /// <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"width" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"height" 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"width" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.width"></field>
    /// <field name=3D"height" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.height"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true},
        {name: "width", type: Number, integer: true},
        {name: "height", type: Number, integer: true}
    ]);
    if (e) throw e;
    this.x =3D x;
    this.y =3D y;
    this.height =3D height;
    this.width =3D width;
}
$type.registerClass('Sys.UI.Bounds');
$type =3D Sys.UI.DomEvent =3D function DomEvent(eventObject) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.#ctor">A cross-browser =
object that represents event properties.</summary>
    /// <param name=3D"eventObject">The browser-specific event object =
(window.event for IE).</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">The character code for the =
pressed key.</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">The key code for the pressed =
key.</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 ev =3D eventObject;
    var etype =3D this.type =3D ev.type.toLowerCase();
    this.rawEvent =3D ev;
    this.altKey =3D ev.altKey;
    if (typeof(ev.button) !=3D=3D 'undefined') {
        this.button =3D (typeof(ev.which) !=3D=3D 'undefined') ? =
ev.button :
            (ev.button =3D=3D=3D 4) ? Sys.UI.MouseButton.middleButton :
            (ev.button =3D=3D=3D 2) ? Sys.UI.MouseButton.rightButton :
            Sys.UI.MouseButton.leftButton;
    }
    if (etype =3D=3D=3D 'keypress') {
        this.charCode =3D ev.charCode || ev.keyCode;
    }
    else if (ev.keyCode && (ev.keyCode =3D=3D=3D 46)) {
        this.keyCode =3D 127;
    }
    else {
        this.keyCode =3D ev.keyCode;
    }
    this.clientX =3D ev.clientX;
    this.clientY =3D ev.clientY;
    this.ctrlKey =3D ev.ctrlKey;
    this.target =3D ev.target || ev.srcElement;
    if (!etype.startsWith('key')) {
        if ((typeof(ev.offsetX) !=3D=3D 'undefined') && =
(typeof(ev.offsetY) !=3D=3D 'undefined')) {
            this.offsetX =3D ev.offsetX;
            this.offsetY =3D ev.offsetY;
        }
        else if (this.target && (this.target.nodeType !=3D=3D 3) && =
(typeof(ev.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) + ev.clientX - loc.x;
            this.offsetY =3D (w.pageYOffset || 0) + ev.clientY - loc.y;
        }
    }
    this.screenX =3D ev.screenX;
    this.screenY =3D ev.screenY;
    this.shiftKey =3D ev.shiftKey;
}
$type.prototype =3D {
    preventDefault: function DomEvent$preventDefault() {
        /// <summary =
locid=3D"M:J#Sys.UI.DomEvent.preventDefault">Prevents the default event =
action from happening. For example, a textbox keydown event,  if =
suppressed, will prevent the character from being appended to the =
textbox.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var raw =3D this.rawEvent;
        if (raw.preventDefault) {
            raw.preventDefault();
        }
        else if (window.event) {
            raw.returnValue =3D false;
        }
    },
    stopPropagation: function DomEvent$stopPropagation() {
        /// <summary =
locid=3D"M:J#Sys.UI.DomEvent.stopPropagation">Prevents the event from =
being propagated to parent elements.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var raw =3D this.rawEvent;
        if (raw.stopPropagation) {
            raw.stopPropagation();
        }
        else if (window.event) {
            raw.cancelBubble =3D true;
        }
    }
}
$type.registerClass('Sys.UI.DomEvent');

$addHandler =3D $type.addHandler =3D function =
DomEvent$addHandler(elements, eventName, handler, autoRemove) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.addHandler">A =
cross-browser way to add a DOM event handler to an element.</summary>
    /// <param name=3D"elements">The element or text node, or array of =
elements or text nodes, that exposes the event. You may also pass a DOM =
selector or array of DOM selectors.</param>
    /// <param name=3D"eventName" type=3D"String">The name of the event. =
Do not include the 'on' prefix, for example, 'click' instead of =
'onclick'.</param>
    /// <param name=3D"handler" type=3D"Function">The event handler to =
add.</param>
    /// <param name=3D"autoRemove" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">Whether the handler should be removed automatically =
when the element is disposed of, such as when an UpdatePanel refreshes, =
or Sys.Application.disposeElement is called.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "elements"},
        {name: "eventName", type: String},
        {name: "handler", type: Function},
        {name: "autoRemove", type: Boolean, mayBeNull: true, optional: =
true}
    ]);
    if (e) throw e;
    if (eventName =3D=3D=3D "error") throw =
Error.invalidOperation(Sys.Res.addHandlerCantBeUsedForError);
    Sys.query(elements).each(function() {
        var nodeType =3D this.nodeType;
        if (nodeType =3D=3D=3D 3 || nodeType =3D=3D=3D 2 || nodeType =
=3D=3D=3D 8) return;
        Sys.UI.DomEvent._ensureDomNode(this);
        if (!this._events) {
            this._events =3D {};
        }
        var eventCache =3D this._events[eventName];
        if (!eventCache) {
            this._events[eventName] =3D eventCache =3D [];
        }
        var element =3D this,=20
            browserHandler;
        if (this.addEventListener) {
            browserHandler =3D function(e) {
                return handler.call(element, new Sys.UI.DomEvent(e));
            }
            this.addEventListener(eventName, browserHandler, false);
        }
        else if (this.attachEvent) {
            browserHandler =3D function() {
                var ex, ev =3D {};
                try {ev =3D Sys.UI.DomElement._getWindow(element).event} =
catch(ex) {}
                return handler.call(element, new Sys.UI.DomEvent(ev));
            }
            this.attachEvent('on' + eventName, browserHandler);
        }
        eventCache.push({handler: handler, browserHandler: =
browserHandler, autoRemove: autoRemove });
        if (autoRemove) {
            Sys.UI.DomElement._onDispose(this, =
Sys.UI.DomEvent._disposeHandlers);
        }
    });
}

Sys.registerPlugin({
    name: "addHandler",
    dom: true,
    returnType: "Sys.ElementSet",
    description: "A cross-browser way to add a DOM event handler to an =
element.",
    parameters: [
        {name: "eventName", type: "String", description: "The name of =
the event. Do not include the 'on' prefix, for example, 'click' instead =
of 'onclick'."},
        {name: "handler", type: "Function", description: "The event =
handler to add."},
        {name: "autoRemove", type: "Boolean", description: "Whether the =
handler should be removed automatically when the element is disposed of, =
such as when an UpdatePanel refreshes, or Sys.Application.disposeElement =
is called."}
    ],
    plugin: function (eventName, handler, autoRemove) {
        Sys.UI.DomEvent.addHandler(this.get(), eventName, handler, =
autoRemove);
        return this;
    }
});

$addHandlers =3D $type.addHandlers =3D function =
DomEvent$addHandlers(elements, events, handlerOwner, autoRemove) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.addHandlers">Adds a list =
of event handlers to an element.  If a handlerOwner is specified, =
delegates are created with each of the handlers.</summary>
    /// <param name=3D"elements">The element or text node, or array of =
element or text nodes, that exposes the event. You may also pass a DOM =
selector or array of DOM selectors.</param>
    /// <param name=3D"events" type=3D"Object">A dictionary of event =
handlers.</param>
    /// <param name=3D"handlerOwner" optional=3D"true" =
mayBeNull=3D"true">The owner of the event handlers that will be the this =
pointer  for the delegates that will be created from the =
handlers.</param>
    /// <param name=3D"autoRemove" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">Whether the handler should be removed automatically =
when the element is disposed of, such as when an UpdatePanel refreshes, =
or when Sys.Application.disposeElement is called.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "elements"},
        {name: "events", type: Object},
        {name: "handlerOwner", mayBeNull: true, optional: true},
        {name: "autoRemove", type: Boolean, mayBeNull: true, optional: =
true}
    ]);
    if (e) throw e;
    Sys.query(elements).each(function() {
        var nodeType =3D this.nodeType;
        if (nodeType =3D=3D=3D 3 || nodeType =3D=3D=3D 2 || nodeType =
=3D=3D=3D 8) return;
        Sys.UI.DomEvent._ensureDomNode(this);
        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(this, name, handler, autoRemove || false);
        }
    });
}

Sys.registerPlugin({
    name: "addHandlers",
    dom: true,
    returnType: "Sys.ElementSet",
    description: "Adds a list of event handlers to an element. If a =
handlerOwner is specified, delegates are created with each of the =
handlers.",
    parameters: [
        {name: "events", type: "Object", description: "A dictionary of =
event handlers."},
        {name: "handlerOwner", description: "The owner of the event =
handlers that will be the this pointer for the delegates that will be =
created from the handlers."},
        {name: "autoRemove", type: "Boolean", description: "Whether the =
handler should be removed automatically when the element is disposed of, =
such as when an UpdatePanel refreshes, or Sys.Application.disposeElement =
is called."}
    ],
    plugin: function (events, handlerOwner, autoRemove) {
        Sys.UI.DomEvent.addHandlers(this.get(), events, handlerOwner, =
autoRemove);
        return this;
    }
});

$clearHandlers =3D $type.clearHandlers =3D function =
DomEvent$clearHandlers(elements) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.clearHandlers">Clears all =
the event handlers that were added to the element or array of =
elements.</summary>
    /// <param name=3D"elements">The element or text node, or an array =
of elements or text nodes. You may also pass a DOM selector or array of =
DOM selectors.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "elements"}
    ]);
    if (e) throw e;
    Sys.query(elements).each(function() {
        var nodeType =3D this.nodeType;
        if (nodeType =3D=3D=3D 3 || nodeType =3D=3D=3D 2 || nodeType =
=3D=3D=3D 8) return;
        Sys.UI.DomEvent._ensureDomNode(this);
        Sys.UI.DomEvent._clearHandlers(this, false);
    });
}

Sys.registerPlugin({
    name: "clearHandlers",
    dom: true,
    returnType: "Sys.ElementSet",
    description: "Clears all the event handlers that were added to the =
element or array of elements.",
    plugin: function() {
        Sys.UI.DomEvent.clearHandlers(this.get());
        return this;
    }
});

$type._clearHandlers =3D function DomEvent$_clearHandlers(elements, =
autoRemoving) {
    Sys.query(elements).each(function() {
        var nodeType =3D this.nodeType;
        if (nodeType =3D=3D=3D 3 || nodeType =3D=3D=3D 2 || nodeType =
=3D=3D=3D 8) return;
        Sys.UI.DomEvent._ensureDomNode(this);
        var cache =3D this._events;
        if (cache) {
            for (var name in cache) {
                var handlers =3D cache[name];
                for (var i =3D handlers.length - 1; i >=3D 0; i--) {
                    var entry =3D handlers[i];
                    if (!autoRemoving || entry.autoRemove) {
                        $removeHandler(this, name, entry.handler);
                    }
                }
            }
        }
    });
}

$type._disposeHandlers =3D function DomEvent$_disposeHandlers() {
    Sys.UI.DomEvent._clearHandlers(this, true);
}

$removeHandler =3D $type.removeHandler =3D function =
DomEvent$removeHandler(elements, eventName, handler) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.removeHandler">A =
cross-browser way to remove a DOM event handler from an =
element.</summary>
    /// <param name=3D"elements">The element or text node, or array of =
elements or text nodes, that exposes the event. You may also pass a DOM =
selector or array of DOM selectors.</param>
    /// <param name=3D"eventName" type=3D"String">The name of the event. =
Do not include the 'on' prefix, for example, 'click' instead of =
'onclick'.</param>
    /// <param name=3D"handler" type=3D"Function">The event handler to =
remove.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "elements"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._removeHandler(elements, eventName, handler);
}
$type._removeHandler =3D function DomEvent$_removeHandler(elements, =
eventName, handler) {
    Sys.query(elements).each(function() {
        var nodeType =3D this.nodeType;
        if (nodeType =3D=3D=3D 3 || nodeType =3D=3D=3D 2 || nodeType =
=3D=3D=3D 8) return;
        Sys.UI.DomEvent._ensureDomNode(this);
        var browserHandler =3D null;
        if ((typeof(this._events) !=3D=3D 'object') || !this._events) =
throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
        var cache =3D this._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 (this.removeEventListener) {
            this.removeEventListener(eventName, browserHandler, false);
        }
        else if (this.detachEvent) {
            this.detachEvent('on' + eventName, browserHandler);
        }
        cache.splice(i, 1);
    });
}

Sys.registerPlugin({
    name: "removeHandler",
    dom: true,
    returnType: "Sys.ElementSet",
    description: "A cross-browser way to remove a DOM event handler from =
an element.",
    parameters: [
        {name: "eventName", type: "String", description: "The name of =
the event. Do not include the 'on' prefix, for example, 'click' instead =
of 'onclick'."},
        {name: "handler", type: "Function", description: "The event =
handler to remove."}
    ],
    plugin: function (eventName, handler) {
        Sys.UI.DomEvent.removeHandler(this.get(), eventName, handler);
        return this;
    }
});


$type._ensureDomNode =3D function DomEvent$_ensureDomNode(element) {
    if (element && element.tagName && (element.tagName.toUpperCase() =
=3D=3D=3D "SCRIPT")) return;
   =20
    var doc =3D element ? (element.ownerDocument || element.document || =
element) : null;
    if (!element ||
        ((typeof(element.document) !=3D=3D 'object') && (element !=3D =
doc) && (typeof(element.nodeType) !=3D=3D 'number'))) {
        throw Error.argument("element", Sys.Res.argumentDomNode);
    }
}
$type =3D Sys.UI.DomElement =3D function DomElement() {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.#ctor">This static class =
provides helpers to work with DOM elements.</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
$type.registerClass('Sys.UI.DomElement');

$type.addCssClass =3D function DomElement$addCssClass(element, =
className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.addCssClass">Adds a CSS =
class to an element if it doesn't already have it.</summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String">The name of the CSS =
class to add.</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;
        }
    }
}

$type.containsCssClass =3D function DomElement$containsCssClass(element, =
className) {
    /// <summary =
locid=3D"M:J#Sys.UI.DomElement.containsCssClass">Determines if an =
element has the specified CSS class.</summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String">The name of the CSS =
class to test.</param>
    /// <returns type=3D"Boolean">True if the CSS class was found on the =
element.</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);
}

$type.getBounds =3D function DomElement$getBounds(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getBounds">Gets the =
coordinates, width and height of an element.</summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Sys.UI.Bounds">A Bounds object with four =
fields, x, y, width and height, which contain the pixel coordinates,  =
width and height of the element.</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);
}

$get =3D $type.getElementById =3D function DomElement$getElementById(id, =
element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getElementById">Finds an =
element by id.</summary>
    /// <param name=3D"id" type=3D"String">The id of the element to =
find.</param>
    /// <param name=3D"element" domElement=3D"true" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns domElement=3D"true" mayBeNull=3D"true">The element, or =
null if it was not found.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "id", type: String},
        {name: "element", mayBeNull: true, domElement: true, optional: =
true}
    ]);
    if (e) throw e;
    return Sys.get("#" + id, element || null);
}

if (document.documentElement.getBoundingClientRect) {
    $type.getLocation =3D function DomElement$getLocation(element) {
        /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation">Gets =
the coordinates of a DOM element.</summary>
        /// <param name=3D"element" domElement=3D"true"></param>
        /// <returns type=3D"Sys.UI.Point">A Point object with two =
fields, x and y, which contain the pixel coordinates of the =
element.</returns>
        var e =3D Function._validateParams(arguments, [
            {name: "element", domElement: true}
        ]);
        if (e) throw e;
       =20
        if (element.self || element.nodeType =3D=3D=3D 9 ||
            (element =3D=3D=3D document.documentElement) ||
            (element.parentNode =3D=3D=3D =
element.ownerDocument.documentElement)) {
            return new Sys.UI.Point(0, 0);
        }       =20
       =20
        var clientRect =3D element.getBoundingClientRect();
        if (!clientRect) {
            return new Sys.UI.Point(0,0);
        }
        var ex, ownerDoc =3D element.ownerDocument, documentElement =3D =
ownerDoc.documentElement,
            offsetX =3D Math.round(clientRect.left) + =
(documentElement.scrollLeft || (ownerDoc.body ? ownerDoc.body.scrollLeft =
: 0)),
            offsetY =3D Math.round(clientRect.top) + =
(documentElement.scrollTop || (ownerDoc.body ? ownerDoc.body.scrollTop : =
0));
        if (isBrowser("InternetExplorer")) {
            try {
                var f =3D =
element.ownerDocument.parentWindow.frameElement || null;
                if (f) {
                    f =3D f.frameBorder;
                    var offset =3D (f =3D=3D=3D "0" || f =3D=3D=3D "no") =
? 2 : 0;
                    offsetX +=3D offset;
                    offsetY +=3D offset;
                }
            }
            catch(ex) {
            }
            if (Sys.Browser.version =3D=3D=3D 7 && =
!document.documentMode) {
                var body =3D document.body,
                    rect =3D body.getBoundingClientRect(),
                    zoom =3D (rect.right-rect.left) / body.clientWidth;
                zoom =3D Math.round(zoom * 100);
                zoom =3D (zoom - zoom % 5) / 100;
                if (!isNaN(zoom) && (zoom !=3D=3D 1)) {
                    offsetX =3D Math.round(offsetX / zoom);
                    offsetY =3D Math.round(offsetY / zoom);
                }
            }       =20
            if ((document.documentMode || 0) < 8) {
                offsetX -=3D documentElement.clientLeft;
                offsetY -=3D documentElement.clientTop;
            }
        }
        return new Sys.UI.Point(offsetX, offsetY);
    }
}
else if (isBrowser("Safari")) {
    $type.getLocation =3D function =
DomElement$getLocation_Safari(element) {
        /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation">Gets =
the coordinates of a DOM element.</summary>
        /// <param name=3D"element" domElement=3D"true"></param>
        /// <returns type=3D"Sys.UI.Point">A Point object with two =
fields, x and y, which contain the pixel coordinates of the =
element.</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, offsetY =3D 0,
            parent,
            previous =3D null,
            previousStyle =3D null,
            currentStyle;
        for (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;
            }

            if (previous && Sys.Browser.version >=3D 3) {
                offsetX +=3D parseInt(currentStyle.borderLeftWidth);
                offsetY +=3D parseInt(currentStyle.borderTopWidth);
            }
        }

        currentStyle =3D Sys.UI.DomElement._getCurrentStyle(element);
        var elementPosition =3D currentStyle ? currentStyle.position : =
null;
        if (elementPosition !=3D=3D "absolute") {
            for (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);
    }
}
else {
    $type.getLocation =3D function =
DomElement$getLocation_Generic(element) {
        /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation">Gets =
the coordinates of a DOM element.</summary>
        /// <param name=3D"element" domElement=3D"true"></param>
        /// <returns type=3D"Sys.UI.Point">A Point object with two =
fields, x and y, which contain the pixel coordinates of the =
element.</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, offsetY =3D 0,
            parent,
            previous =3D null,
            previousStyle =3D null,
            currentStyle =3D null;
        for (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 !=3D=3D "absolute") {
            for (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);
    }
}

$type.isDomElement =3D function DomElement$isDomElement(obj) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.isDomElement">Determines =
if the given argument is a DOM element.</summary>
    /// <param name=3D"obj"></param>
    /// <returns type=3D"Boolean">True if the object is a DOM element, =
otherwise false.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "obj"}
    ]);
    if (e) throw e;
    return Sys._isDomElement(obj);
}

$type.removeCssClass =3D function DomElement$removeCssClass(element, =
className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.removeCssClass">Removes =
a CSS class from an element.</summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String">The name of the CSS =
class to remove.</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();
    }
}

$type.resolveElement =3D function =
DomElement$resolveElement(elementOrElementId, containerElement) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.resolveElement">Returns =
the element with the specified Id in the specified container, or the =
element if it is already an element.</summary>
    /// <param name=3D"elementOrElementId" mayBeNull=3D"true"></param>
    /// <param name=3D"containerElement" domElement=3D"true" =
optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns domElement=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "elementOrElementId", mayBeNull: true},
        {name: "containerElement", mayBeNull: true, domElement: true, =
optional: true}
    ]);
    if (e) throw e;
    var el =3D elementOrElementId;
    if (!el) return null;
    if (typeof(el) =3D=3D=3D "string") {
        el =3D Sys.get("#" + el, containerElement);
        if (!el) {
            throw Error.argument("elementOrElementId", =
String.format(Sys.Res.elementNotFound, elementOrElementId));
        }
    }
    else if(!Sys.UI.DomElement.isDomElement(el)) {
        throw Error.argument("elementOrElementId", =
Sys.Res.expectedElementOrId);
    }
    return el;
}

$type.raiseBubbleEvent =3D function DomElement$raiseBubbleEvent(source, =
args) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.raiseBubbleEvent">Raises =
a bubble event.</summary>
    /// <param name=3D"source" domElement=3D"true">The DOM element that =
triggers the event.</param>
    /// <param name=3D"args" type=3D"Sys.EventArgs">The event =
arguments.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "source", domElement: true},
        {name: "args", type: Sys.EventArgs}
    ]);
    if (e) throw e;
    var target =3D source;
    while (target) {
        var control =3D target.control;
        if (control && control.onBubbleEvent && =
control.raiseBubbleEvent) {
            if (!control.onBubbleEvent(source, args)) {
                control._raiseBubbleEvent(source, args);
            }
            return;
        }
        target =3D target.parentNode;
    }
}

$type._ensureGet =3D function DomElement$_ensureGet(selector, context, =
arg) {
    var ret =3D Sys.get(selector, context);
    if (!ret && typeof(selector) =3D=3D=3D "string") {
        throw =
Error.invalidOperation(String.format(Sys.Res.selectorNotFound, =
selector));
    }
    else if (ret && !this.isDomElement(ret)) {
        throw =
Error.invalidOperation(String.format(Sys.Res.expectedDomElementOrSelector=
, arg));
    }
    return ret;
}

$type.setLocation =3D function DomElement$setLocation(element, x, y) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setLocation">Sets the =
position of an element.</summary>
    /// <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";
}

$type.toggleCssClass =3D function DomElement$toggleCssClass(element, =
className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.toggleCssClass">Toggles =
a CSS class on and off o an element.</summary>
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String">The name of the CSS =
class to toggle.</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);
    }
}

$type.getVisibilityMode =3D function =
DomElement$getVisibilityMode(element) {
    /// <summary =
locid=3D"M:J#Sys.UI.DomElement.getVisibilityMode"></summary>
    /// <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;
}
$type.setVisibilityMode =3D function =
DomElement$setVisibilityMode(element, value) {
    /// <summary =
locid=3D"M:J#Sys.UI.DomElement.setVisibilityMode"></summary>
    /// <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) {
            element.style.display =3D (value =3D=3D=3D =
Sys.UI.VisibilityMode.hide) ? element._oldDisplayMode : 'none';
        }
    }
}

$type.getVisible =3D function DomElement$getVisible(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getVisible"></summary>
    /// <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);
    return style ? (style.visibility !=3D=3D 'hidden') && (style.display =
!=3D=3D 'none') : true;
}
$type.setVisible =3D function DomElement$setVisible(element, value) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setVisible"></summary>
    /// <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);
        var style =3D element.style;
        style.visibility =3D value ? 'visible' : 'hidden';
        style.display =3D (value || (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide)) ? element._oldDisplayMode : 'none';
    }
}

$type.setCommand =3D function DomElement$setCommand(commandSource, =
commandName, commandArgument, commandTarget) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setCommand">Causes a DOM =
element to raise a bubble event when clicked.</summary>
    /// <param name=3D"commandSource">The DOM element, array of DOM =
elements, or DOM element selectors that causes the event when =
clicked.</param>
    /// <param name=3D"commandName" type=3D"String" =
mayBeNull=3D"true">The name of the command to raise.</param>
    /// <param name=3D"commandArgument" mayBeNull=3D"true" =
optional=3D"true">Optional command argument.</param>
    /// <param name=3D"commandTarget" optional=3D"true" =
mayBeNull=3D"true">DOM element from which the command should start =
bubbling up.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "commandSource"},
        {name: "commandName", type: String, mayBeNull: true},
        {name: "commandArgument", mayBeNull: true, optional: true},
        {name: "commandTarget", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent.addHandler(commandSource, 'click', function(ev) {
        var source =3D commandTarget || this;
        Sys.UI.DomElement.raiseBubbleEvent(source, new =
Sys.CommandEventArgs(commandName, commandArgument, this, ev));=20
    }, true /*autoRemove*/);
}

Sys.registerPlugin({
    name: "setCommand",
    dom: true,
    returnType: "Sys.ElementSet",
    description: "Causes a DOM element to raise a bubble event when =
clicked.",
    parameters: [
        {name: "commandName", type:"String", description: "The name of =
the command to raise."},
        {name: "commandArgument", description: "Optional command =
argument."},
        {name: "commandTarget", description: "DOM element from which the =
command should start bubbling up."}
    ],
    plugin: function(commandName, commandArgument, commandTarget) {
        var e =3D Function._validateParams(arguments, [
            {name: "commandName", type: String, mayBeNull: true},
            {name: "commandArgument", mayBeNull: true, optional: true},
            {name: "commandTarget", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        return this.addHandler('click', function(ev) {
            var source =3D commandTarget || this;
            Sys.UI.DomElement.raiseBubbleEvent(source, new =
Sys.CommandEventArgs(commandName, commandArgument, this, ev));=20
        }, true /*autoRemove*/);
    }
});

$type._ensureOldDisplayMode =3D function =
DomElement$_ensureOldDisplayMode(element) {
    if (!element._oldDisplayMode) {
        var style =3D element.currentStyle || =
this._getCurrentStyle(element);
        element._oldDisplayMode =3D style ? style.display : null;
        if (!element._oldDisplayMode || element._oldDisplayMode =
=3D=3D=3D 'none') {
            var tagName =3D element.tagName,
                mode =3D 'inline';
            if =
(/^(DIV|P|ADDRESS|BLOCKQUOTE|BODY|COL|COLGROUP|DD|DL|DT|FIELDSET|FORM|H1|=
H2|H3|H4|H5|H6|HR|IFRAME|LEGEND|OL|PRE|TABLE|TD|TH|TR|UL)$/i.test(tagName=
)) {
                mode =3D 'block';
            }
            else if (tagName.toUpperCase() =3D=3D=3D "LI") {
                mode =3D 'list-item';
            }
            element._oldDisplayMode =3D mode;
        }
    }
}

$type._getWindow =3D function DomElement$_getWindow(element) {
    var doc =3D element.ownerDocument || element.document || element;
    return doc.defaultView || doc.parentWindow;
}

$type._getCurrentStyle =3D function DomElement$_getCurrentStyle(element) =
{
    if (element.nodeType =3D=3D=3D 3) return null;
    var w =3D this._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;
    return computedStyle;
}

$type._onDispose =3D function DomElement$_onDispose(element, fn) {
    var queue, d =3D element.dispose;
    if (d !=3D=3D Sys.UI.DomElement._dispose) {
        element.dispose =3D Sys.UI.DomElement._dispose;
        element.__msajaxdispose =3D queue =3D [];
        if (typeof(d) =3D=3D=3D "function") {
            queue.push(d);
        }
    }
    else {
        queue =3D element.__msajaxdispose;
    }
    queue.push(fn);
}

$type._dispose =3D function DomElement$_dispose() {
    var queue =3D this.__msajaxdispose;
    if (queue) {
        for (var i =3D 0, l =3D queue.length; i < l; i++) {
            queue[i].apply(this);
        }
    }
    if (this.control && typeof(this.control.dispose) =3D=3D=3D =
"function") {
        this.control.dispose();
    }
    this.__msajaxdispose =3D null;
    this.dispose =3D null;
}
$type =3D Sys.IContainer =3D function IContainer() {
    throw Error.notImplemented();
}
$type.prototype =3D {
    addComponent: function IContainer$addComponent(component) {
        /// <summary =
locid=3D"M:J#Sys.IContainer.addComponent"></summary>
        /// <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();
    },
    removeComponent: function IContainer$removeComponent(component) {
        /// <summary =
locid=3D"M:J#Sys.IContainer.removeComponent"></summary>
        /// <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();
    },
    findComponent: function IContainer$findComponent(id) {
        /// <summary =
locid=3D"M:J#Sys.IContainer.findComponent"></summary>
        /// <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();
    },
    getComponents: function IContainer$getComponents() {
        /// <summary =
locid=3D"M:J#Sys.IContainer.getComponents"></summary>
        /// <returns type=3D"Array" =
elementType=3D"Sys.Component"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
}
$type.registerInterface("Sys.IContainer");

$type =3D Sys.ApplicationLoadEventArgs =3D function =
ApplicationLoadEventArgs(components, isPartialLoad) {
    /// <summary =
locid=3D"M:J#Sys.ApplicationLoadEventArgs.#ctor"></summary>
    /// <param name=3D"components" type=3D"Array" =
elementType=3D"Sys.Component">The list of components that were created =
since the last time the load event was raised.</param>
    /// <param name=3D"isPartialLoad" type=3D"Boolean">True if the page =
is partially loading.</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;
}
$type.prototype =3D {
    get_components: function ApplicationLoadEventArgs$get_components() {
        /// <value type=3D"Array" elementType=3D"Sys.Component" =
locid=3D"P:J#Sys.ApplicationLoadEventArgs.components">The list of =
components that were created since the last time the load event was =
raised.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._components;
    },
    get_isPartialLoad: function =
ApplicationLoadEventArgs$get_isPartialLoad() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.ApplicationLoadEventArgs.isPartialLoad">True if the =
page is partially loading.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._isPartialLoad;
    }
}
$type.registerClass('Sys.ApplicationLoadEventArgs', Sys.EventArgs);
$type =3D Sys._Application =3D function _Application() {
    /// <summary locid=3D"M:J#Sys.Application.#ctor"></summary>
    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._unloadHandlerDelegate =3D Function.createDelegate(this, =
this._unloadHandler);
    Sys.UI.DomEvent.addHandler(window, "unload", =
this._unloadHandlerDelegate);
}
$type.prototype =3D {
    _deleteCount: 0,

    get_isCreatingComponents: function =
_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;
    },
    get_isDisposing: function _Application$get_isDisposing() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Application.isDisposing"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._disposing;
    },
    add_init: function _Application$add_init(handler) {
        /// <summary locid=3D"E:J#Sys.Application.init"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        if (this._initialized) {
            handler(this, Sys.EventArgs.Empty);
        }
        else {
            this._addHandler("init", handler);
        }
    },
    remove_init: function _Application$remove_init(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._removeHandler("init", handler);
    },
    add_load: function _Application$add_load(handler) {
        /// <summary locid=3D"E:J#Sys.Application.load"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._addHandler("load", handler);
    },
    remove_load: function _Application$remove_load(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._removeHandler("load", handler);
    },
    add_unload: function _Application$add_unload(handler) {
        /// <summary locid=3D"E:J#Sys.Application.unload"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._addHandler("unload", handler);
    },
    remove_unload: function _Application$remove_unload(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._removeHandler("unload", handler);
    },
    addComponent: function _Application$addComponent(component) {
        /// <summary locid=3D"M:J#Sys.Application.addComponent">Adds a =
top-level component to the application.</summary>
        /// <param name=3D"component" type=3D"Sys.Component">The =
component to add.</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;
    },
    beginCreateComponents: function _Application$beginCreateComponents() =
{
        /// <summary =
locid=3D"M:J#Sys.Application.beginCreateComponents"></summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._creatingComponents =3D true;
    },
    dispose: function _Application$dispose() {
        /// <summary locid=3D"M:J#Sys.Application.dispose"></summary>
        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;
            }
            var endHandler =3D this._endRequestHandler;
            var beginHandler =3D this._beginRequestHandler;
            if (endHandler || beginHandler) {
                var prm =3D =
Sys.WebForms.PageRequestManager.getInstance();
                if (endHandler) prm.remove_endRequest(endHandler);
                if (beginHandler) prm.remove_beginRequest(beginHandler);
                delete this._endRequestHandler;
                delete this._beginRequestHandler;
            }
            if (window.pageUnload) {
                window.pageUnload(this, Sys.EventArgs.Empty);
            }
            Sys.Observer.raiseEvent(this, "unload");
            var disposableObjects =3D =
Array.clone(this._disposableObjects);
            for (var i =3D 0, l =3D disposableObjects.length; i < l; =
i++) {
                var object =3D disposableObjects[i];
                if (typeof(object) !=3D=3D "undefined") {
                    object.dispose();
                }
            }
            this._disposableObjects.length =3D 0;

            Sys.UI.DomEvent.removeHandler(window, "unload", =
this._unloadHandlerDelegate);

            if (Sys._ScriptLoader) {
                var sl =3D Sys._ScriptLoader.getInstance();
                if (sl) {
                    sl.dispose();
                }
            }

            Sys._Application.callBaseMethod(this, 'dispose');
        }
    },
    disposeElement: function _Application$disposeElement(element, =
childNodesOnly) {
        /// <summary =
locid=3D"M:J#Sys._Application.disposeElement">Disposes of control and =
behavior resources associated with an element and its child =
nodes.</summary>
        /// <param name=3D"element">The element to dispose.</param>
        /// <param name=3D"childNodesOnly" type=3D"Boolean">Whether to =
dispose of the element and its child nodes or only its child =
nodes.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "element"},
            {name: "childNodesOnly", type: Boolean}
        ]);
        if (e) throw e;
        if (element.nodeType =3D=3D=3D 1) {
            var d, c, i, list,
                allElements =3D element.getElementsByTagName("*"),
                length =3D allElements.length,
                children =3D new Array(length);
            for (i =3D 0; i < length; i++) {
                children[i] =3D allElements[i];
            }
            for (i =3D length - 1; i >=3D 0; i--) {
                var child =3D children[i];
                d =3D child.dispose;
                if (d && typeof(d) =3D=3D=3D "function") {
                    child.dispose();
                }
                else {
                    c =3D child.control;
                    if (c && typeof(c.dispose) =3D=3D=3D "function") {
                        c.dispose();
                    }
                }
                list =3D child._behaviors;
                if (list) {
                    this._disposeComponents(list);
                }
                list =3D child._components;
                if (list) {
                    this._disposeComponents(list);
                    child._components =3D null;
                }
            }
            if (!childNodesOnly) {
                d =3D element.dispose;
                if (d && typeof(d) =3D=3D=3D "function") {
                    element.dispose();
                }
                else {
                    c =3D element.control;
                    if (c && typeof(c.dispose) =3D=3D=3D "function") {
                        c.dispose();
                    }
                }
                list =3D element._behaviors;
                if (list) {
                    this._disposeComponents(list);
                }
                list =3D element._components;
                if (list) {
                    this._disposeComponents(list);
                    element._components =3D null;
                }
            }
        }
    },   =20
    endCreateComponents: function _Application$endCreateComponents() {
        /// <summary =
locid=3D"M:J#Sys.Application.endCreateComponents"></summary>
        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 entry =3D components[i],
                component =3D entry.component;
            Sys.Component._setReferences(component, entry.references);
            component.endUpdate();
        }
        this._secondPassComponents =3D [];
        this._creatingComponents =3D false;
    },
    findComponent: function _Application$findComponent(id, parent) {
        /// <summary locid=3D"M:J#Sys.Application.findComponent">Finds =
top-level components that were added through addComponent if no parent =
is specified  or children of the specified parent. If parent is a =
component</summary>
        /// <param name=3D"id" type=3D"String">The id of the component =
to find.</param>
        /// <param name=3D"parent" optional=3D"true" =
mayBeNull=3D"true">The component or element that contains the component =
to find.  If not specified or null, the search is made on =
Application.</param>
        /// <returns type=3D"Sys.Component" mayBeNull=3D"true">The =
component, or null if it wasn't found.</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);
    },
    getComponents: function _Application$getComponents() {
        /// <summary =
locid=3D"M:J#Sys.Application.getComponents"></summary>
        /// <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) {
            if (components.hasOwnProperty(name)) {
                res.push(components[name]);
            }
        }
        return res;
    },
    initialize: function _Application$initialize() {
        /// <summary locid=3D"M:J#Sys.Application.initialize"></summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        window.setTimeout(Function.createDelegate(this, =
this._doInitialize), 0);
    },
    _doInitialize: function _Application$_doInitialize() {
        if(!this.get_isInitialized() && !this._disposing) {
            Sys._Application.callBaseMethod(this, 'initialize');
            this._raiseInit();
            if (this.get_stateString) {
                if (Sys.WebForms && Sys.WebForms.PageRequestManager) {
                    var prm =3D =
Sys.WebForms.PageRequestManager.getInstance();
                    this._beginRequestHandler =3D =
Function.createDelegate(this, this._onPageRequestManagerBeginRequest);
                    prm.add_beginRequest(this._beginRequestHandler);
                    this._endRequestHandler =3D =
Function.createDelegate(this, this._onPageRequestManagerEndRequest);
                    prm.add_endRequest(this._endRequestHandler);
                }
                var loadedEntry =3D this.get_stateString();
                if (loadedEntry !=3D=3D this._currentEntry) {
                    this._navigate(loadedEntry);
                }
                else {
                    this._ensureHistory();
                }
            }
            this.raiseLoad();
        }
    },
    notifyScriptLoaded: function _Application$notifyScriptLoaded() {
        /// <summary =
locid=3D"M:J#Sys.Application.notifyScriptLoaded">Called by referenced =
scripts to indicate that they have completed loading. =
[Obsolete]</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    },
    registerDisposableObject: function =
_Application$registerDisposableObject(object) {
        /// <summary =
locid=3D"M:J#Sys.Application.registerDisposableObject">Registers a =
disposable object with the application.</summary>
        /// <param name=3D"object" type=3D"Sys.IDisposable">The object =
to register.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", type: Sys.IDisposable}
        ]);
        if (e) throw e;
        if (!this._disposing) {
            var objects =3D this._disposableObjects,
                i =3D objects.length;
            objects[i] =3D object;
            object.__msdisposeindex =3D i;
        }
    },
    raiseLoad: function _Application$raiseLoad() {
        /// <summary locid=3D"M:J#Sys.Application.raiseLoad"></summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var args =3D new =
Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents), =
!!this._loaded);
        this._loaded =3D true;
        Sys.Observer.raiseEvent(this, "load", args);
        if (window.pageLoad) {
            window.pageLoad(this, args);
        }
        this._createdComponents =3D [];
    },
    removeComponent: function _Application$removeComponent(component) {
        /// <summary =
locid=3D"M:J#Sys.Application.removeComponent">Removes a top-level =
component from the application.</summary>
        /// <param name=3D"component" type=3D"Sys.Component">The =
component to remove.</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];
    },
    unregisterDisposableObject: function =
_Application$unregisterDisposableObject(object) {
        /// <summary =
locid=3D"M:J#Sys.Application.unregisterDisposableObject">Unregisters a =
disposable object from the application.</summary>
        /// <param name=3D"object" type=3D"Sys.IDisposable">The object =
to unregister.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", type: Sys.IDisposable}
        ]);
        if (e) throw e;
        if (!this._disposing) {
            var i =3D object.__msdisposeindex;
            if (typeof(i) =3D=3D=3D "number") {
                var disposableObjects =3D this._disposableObjects;
                delete disposableObjects[i];
                delete object.__msdisposeindex;
                if (++this._deleteCount > 1000) {
                    var newArray =3D [];
                    for (var j =3D 0, l =3D disposableObjects.length; j =
< l; j++) {
                        object =3D disposableObjects[j];
                        if (typeof(object) !=3D=3D "undefined") {
                            object.__msdisposeindex =3D newArray.length;
                            newArray.push(object);
                        }
                    }
                    this._disposableObjects =3D newArray;
                    this._deleteCount =3D 0;
                }
            }
        }
    },
    _addComponentToSecondPass: function =
_Application$_addComponentToSecondPass(component, references) {
        this._secondPassComponents.push({component: component, =
references: references});
    },
    _disposeComponents: function _Application$_disposeComponents(list) {
        if (list) {
            for (var i =3D list.length - 1; i >=3D 0; i--) {
                var item =3D list[i];
                if (typeof(item.dispose) =3D=3D=3D "function") {
                    item.dispose();
                }
            }
        }
    },
    _raiseInit: function _Application$_raiseInit() {
        this.beginCreateComponents();
        Sys.Observer.raiseEvent(this, "init");
        this.endCreateComponents();
    },
    _unloadHandler: function _Application$_unloadHandler(event) {
        this.dispose();
    }
}
$type.registerClass('Sys._Application', Sys.Component, Sys.IContainer);

Sys.Application =3D new Sys._Application();
window.$find =3D Sys.Application.findComponent;

Sys.onReady(function() {
    Sys.Application._doInitialize();
});


$type =3D Sys.UI.Behavior =3D function Behavior(element) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.#ctor"></summary>
    /// <param name=3D"element" domElement=3D"true">The DOM element the =
behavior is associated with.</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 =3D element._behaviors || []);
    behaviors.push(this);
}
$type.prototype =3D {
    get_element: function Behavior$get_element() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys.UI.Behavior.element">The DOM element this behavior is =
associated with</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._element;
    },
    get_id: function 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;
        var element =3D this._element;
        if (!element || !element.id) return '';
        return element.id + '$' + this.get_name();
    },
    get_name: function 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 0) name =3D name.substr(i + 1);
        if (!this._initialized) this._name =3D name;
        return name;
    },
    set_name: function 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;
    },
    initialize: function Behavior$initialize() {
        Sys.UI.Behavior.callBaseMethod(this, 'initialize');
        var name =3D this.get_name();
        if (name) this._element[name] =3D this;
    },
    dispose: function Behavior$dispose() {
        Sys.UI.Behavior.callBaseMethod(this, 'dispose');
        var e =3D this._element;
        if (e) {
            var name =3D this.get_name();
            if (name) {
                e[name] =3D null;
            }
            var behaviors =3D e._behaviors;
            Array.remove(behaviors, this);
            if (!behaviors.length) {
                e._behaviors =3D null;
            }
            delete this._element;
        }
    }
}
$type.registerClass('Sys.UI.Behavior', Sys.Component);

$type.getBehaviorByName =3D function Behavior$getBehaviorByName(element, =
name) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviorByName">Gets a =
behavior with the specified name from the dom element.</summary>
    /// <param name=3D"element" domElement=3D"true">The DOM element to =
inspect.</param>
    /// <param name=3D"name" type=3D"String">The name of the behavior to =
look for.</param>
    /// <returns type=3D"Sys.UI.Behavior" mayBeNull=3D"true">The =
behaviors or null if it was not found.</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;
}

$type.getBehaviors =3D function Behavior$getBehaviors(element) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviors">Gets a =
collection containing the behaviors associated with an =
element.</summary>
    /// <param name=3D"element" domElement=3D"true">The DOM =
element.</param>
    /// <returns type=3D"Array" elementType=3D"Sys.UI.Behavior">An array =
containing the behaviors associated with the DOM element.</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    var behaviors =3D element._behaviors;
    return behaviors ? Array.clone(behaviors) : [];
}

Sys.UI.Behavior.getBehaviorsByType =3D function =
Behavior$getBehaviorsByType(element, type) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviorsByType">Gets =
an array of behaviors with the specified type from the dom =
element.</summary>
    /// <param name=3D"element" domElement=3D"true">The DOM element to =
inspect.</param>
    /// <param name=3D"type" type=3D"Type">The type of behavior to look =
for.</param>
    /// <returns type=3D"Array" elementType=3D"Sys.UI.Behavior">An array =
containing the behaviors of the specified type found on the element.  =
The array is empty if no behavior of this type was found.</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++) {
            var behavior =3D behaviors[i];
            if (type.isInstanceOfType(behavior)) {
                results.push(behavior);
            }
        }
    }
    return results;
}
$type =3D Sys.UI.VisibilityMode =3D function VisibilityMode() {
    /// <summary locid=3D"M:J#Sys.UI.VisibilityMode.#ctor">Describes how =
a DOM element should disappear when its visible property is set to =
false.</summary>
    /// <field name=3D"hide" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.VisibilityMode.hide">The element =
disappears but its space remains</field>
    /// <field name=3D"collapse" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.VisibilityMode.collapse">The element =
disappears and the space it occupied is collapsed.</field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
$type.prototype =3D {
    hide: 0,
    collapse: 1
}
$type.registerEnum("Sys.UI.VisibilityMode");

$type =3D Sys.UI.Control =3D function Control(element) {
    /// <summary locid=3D"M:J#Sys.UI.Control.#ctor"></summary>
    /// <param name=3D"element" domElement=3D"true">The DOM element the =
behavior is associated with.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    if (element.control) throw =
Error.invalidOperation(Sys.Res.controlAlreadyDefined);
    Sys.UI.Control.initializeBase(this);

    this._element =3D element;
    element.control =3D this;
    var role =3D this.get_role();
    if (role) {
        element.setAttribute("role", role);
    }
}
$type.prototype =3D {
    _parent: null,
    _visibilityMode: Sys.UI.VisibilityMode.hide,

    get_element: function Control$get_element() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys.UI.Control.element">The DOM element this behavior is =
associated with</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._element;
    },
    get_id: function 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();
        return this._id || (this._element ? this._element.id : "");
    },
    get_parent: function 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;
    },
    set_parent: function 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.push(current);
            current =3D current.get_parent();
        }
        this._parent =3D value;
    },
    get_role: function Control$get_role() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Control.role"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return null;
    },
    get_visibilityMode: function 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);
    },
    set_visibilityMode: function 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);
    },
    get_visible: function 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);
    },
    set_visible: function 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)
    },
    addCssClass: function Control$addCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.addCssClass">Adds a CSS =
class to the control if it doesn't already have it.</summary>
        /// <param name=3D"className" type=3D"String">The name of the =
CSS class to add.</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);
    },
    dispose: function Control$dispose() {
        Sys.UI.Control.callBaseMethod(this, 'dispose');
        if (this._element) {
            this._element.control =3D null;
            delete this._element;
        }
        if (this._parent) delete this._parent;
    },
    onBubbleEvent: function Control$onBubbleEvent(source, args) {
        /// <summary =
locid=3D"M:J#Sys.UI.Control.onBubbleEvent"></summary>
        /// <param name=3D"source">The object that triggered the =
event.</param>
        /// <param name=3D"args" type=3D"Sys.EventArgs">The event =
arguments.</param>
        /// <returns type=3D"Boolean">False, because the event was not =
handled and should bubble up further. Derived classes should override =
that and return true whenever they handle the event to prevent it from =
bubbling up.</returns>
        var e =3D Function._validateParams(arguments, [
            {name: "source"},
            {name: "args", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        return false;
    },
    raiseBubbleEvent: function Control$raiseBubbleEvent(source, args) {
        /// <summary =
locid=3D"M:J#Sys.UI.Control.raiseBubbleEvent"></summary>
        /// <param name=3D"source">The object that triggered the =
event.</param>
        /// <param name=3D"args" type=3D"Sys.EventArgs">The event =
arguments.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "source"},
            {name: "args", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        this._raiseBubbleEvent(source, args);
    },
    _raiseBubbleEvent: function Control$_raiseBubbleEvent(source, args) =
{
        var currentTarget =3D this.get_parent();
        while (currentTarget) {
            if (currentTarget.onBubbleEvent(source, args)) {
                return;
            }
            currentTarget =3D currentTarget.get_parent();
        }
    },
    removeCssClass: function Control$removeCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.removeCssClass">Removes =
a CSS class from the control.</summary>
        /// <param name=3D"className" type=3D"String">The name of the =
CSS class to remove.</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);
    },
    toggleCssClass: function Control$toggleCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.toggleCssClass">Toggles =
a CSS class on and off on the control.</summary>
        /// <param name=3D"className" type=3D"String">The name of the =
CSS class to toggle.</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);
    }
}
$type.registerClass('Sys.UI.Control', Sys.Component);



$type =3D Sys.HistoryEventArgs =3D function HistoryEventArgs(state) {
    /// <summary locid=3D"M:J#Sys.HistoryEventArgs.#ctor"></summary>
    /// <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;
}
$type.prototype =3D {
    get_state: function 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;
    }
}
$type.registerClass('Sys.HistoryEventArgs', Sys.EventArgs);
$type =3D Sys.Application;
$type._currentEntry =3D '';
$type._initialState =3D null;
$type._state =3D {};

$prototype =3D Sys._Application.prototype;
$prototype.get_stateString =3D function _Application$get_stateString() {
    /// <summary =
locid=3D"M:J#Sys._Application.get_stateString"></summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    var hash =3D null;
   =20
    if (isBrowser("Firefox")) {
        var href =3D window.location.href;
        var hashIndex =3D href.indexOf('#');
        if (hashIndex !=3D=3D -1) {
            hash =3D href.substring(hashIndex + 1);
        }
        else {
            hash =3D "";
        }
        return hash;
    }
    else {
        hash =3D window.location.hash;
    }
   =20
    if (hash.length && (hash.charAt(0) =3D=3D=3D '#')) {
        hash =3D hash.substring(1);
    }

    return hash;
};

$prototype.get_enableHistory =3D function =
_Application$get_enableHistory() {
    /// <summary =
locid=3D"M:J#Sys._Application.get_enableHistory"></summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return !!this._enableHistory;
};

$prototype.set_enableHistory =3D function =
_Application$set_enableHistory(value) {
    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;
};

$prototype.add_navigate =3D function _Application$add_navigate(handler) =
{
    /// <summary locid=3D"E:J#Sys.Application.navigate"></summary>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    this._addHandler("navigate", handler);
};

$prototype.remove_navigate =3D function =
_Application$remove_navigate(handler) {
    /// <summary =
locid=3D"M:J#Sys._Application.remove_navigate"></summary>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    this._removeHandler("navigate", handler);
};

$prototype.addHistoryPoint =3D function =
_Application$addHistoryPoint(state, title) {
    /// <summary =
locid=3D"M:J#Sys.Application.addHistoryPoint"></summary>
    /// <param name=3D"state" type=3D"Object">A dictionary of state bits =
that will be added to the main state   to form the global state of the =
new history point.   The state must be a string dictionary. The =
application is responsible   for converting the state bits from and into =
the relevant types.</param>
    /// <param name=3D"title" type=3D"String" optional=3D"true" =
mayBeNull=3D"true">The title for the new history point.</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();
};

$prototype.setServerId =3D function _Application$setServerId(clientId, =
uniqueId) {
    /// <summary locid=3D"M:J#Sys.Application.setServerId"></summary>
    /// <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;
};

$prototype.setServerState =3D function =
_Application$setServerState(value) {
    /// <summary locid=3D"M:J#Sys.Application.setServerState"></summary>
    /// <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);
};

$prototype._deserializeState =3D function =
_Application$_deserializeState(entry) {
    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 decodeURIComponent(value);
        }
    }
    return result;
};

$prototype._enableHistoryInScriptManager =3D function =
_Application$_enableHistoryInScriptManager() {
    this._enableHistory =3D true;
    this._historyEnabledInScriptManager =3D true;
};

$prototype._ensureHistory =3D function _Application$_ensureHistory() {
    if (!this._historyInitialized && this._enableHistory) {
        if (isBrowser("InternetExplorer") && (Sys.Browser.documentMode < =
8)) {
            this._historyFrame =3D Sys.get('#__historyFrame');
            if (!this._historyFrame) throw =
Error.invalidOperation(Sys.Res.historyMissingFrame);
            this._ignoreIFrame =3D true;
        }
        this._timerHandler =3D Function.createDelegate(this, =
this._onIdle);
        this._timerCookie =3D window.setTimeout(this._timerHandler, =
100);
       =20
        var e;
        try {
            this._initialState =3D =
this._deserializeState(this.get_stateString());
        }
        catch(e) {}
       =20
        this._historyInitialized =3D true;
    }
};

$prototype._navigate =3D function _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();
};

$prototype._onIdle =3D function _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);
        }
    }
    else {
        this._ignoreTimer =3D false;
    }
    this._timerCookie =3D window.setTimeout(this._timerHandler, 100);
};

$prototype._onIFrameLoad =3D function _Application$_onIFrameLoad(entry) =
{
    this._ensureHistory();
    if (!this._ignoreIFrame) {
        this._historyPointIsNew =3D false;
        this._navigate(entry);
    }
    this._ignoreIFrame =3D false;
};

$prototype._onPageRequestManagerBeginRequest =3D function =
_Application$_onPageRequestManagerBeginRequest(sender, args) {
    this._ignoreTimer =3D true;
    this._originalTitle =3D document.title;
};

$prototype._onPageRequestManagerEndRequest =3D function =
_Application$_onPageRequestManagerEndRequest(sender, args) {
    var dataItem =3D args.get_dataItems()[this._clientId];
    var originalTitle =3D this._originalTitle;
    this._originalTitle =3D null;

    var eventTarget =3D Sys.get("#__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;
        if (typeof(originalTitle) =3D=3D=3D "string") {
            if (!isBrowser("InternetExplorer") || Sys.Browser.version > =
7) {
                var newTitle =3D document.title;
                document.title =3D originalTitle;
                this._setState(entry);
                document.title =3D newTitle;
            }
            else {
                this._setState(entry);
            }
            this._raiseNavigate();
        }
        else {
            this._setState(entry);
            this._raiseNavigate();
        }
    }
};

$prototype._raiseNavigate =3D function _Application$_raiseNavigate() {
    var isNew =3D this._historyPointIsNew;
    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);
    Sys.Observer.raiseEvent(this, "navigate", args);
    if (!isNew) {
        var err;
        try {
            if (isBrowser("Firefox") && window.location.hash &&
                (!window.frameElement || window.top.location.hash)) {
                (Sys.Browser.version < 3.5) ?
                    window.history.go(0) :
                    location.hash =3D this.get_stateString();
            }
        }
        catch(err) {
        }
    }
};

$prototype._serializeState =3D function =
_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.push(key + '=3D' + encodeURIComponent(value));
        }
    }
    return serialized.join('&') + (serverState ? '&&' + serverState : =
'');
};

$prototype._setState =3D function _Application$_setState(entry, title) {
    if (this._enableHistory) {
        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;
                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
                    =
Sys.Serialization.JavaScriptSerializer.serialize(entry) +
                    ");</scri" + "pt></head><body></body></html>");
                frameDoc.close();
            }
            this._ignoreTimer =3D false;
            this._currentEntry =3D entry;
            if (this._historyFrame || this._historyPointIsNew) {
                var currentHash =3D this.get_stateString();
                if (entry !=3D=3D currentHash) {
                    var loc =3D document.location;
                    if (loc.href.length - loc.hash.length + entry.length =
> 2048) {
                        throw =
Error.invalidOperation(String.format(Sys.Res.urlTooLong, 2048));
                    }
                    window.location.hash =3D entry;
                    this._currentEntry =3D this.get_stateString();
                    if ((typeof(title) !=3D=3D 'undefined') && (title =
!=3D=3D null)) {
                        document.title =3D title;
                    }
                }
            }
            this._historyPointIsNew =3D false;
        }
    }
};

$prototype._updateHiddenField =3D function =
_Application$_updateHiddenField(value) {
    if (this._clientId) {
        var serverStateField =3D =
document.getElementById(this._clientId);
        if (serverStateField) {
            serverStateField.value =3D value;
        }
    }
};



if (!window.XMLHttpRequest) {
    window.XMLHttpRequest =3D function window$XMLHttpRequest() {
        var ex, 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;
    }
}

Type.registerNamespace('Sys.Net');

$type =3D Sys.Net.WebRequestExecutor =3D function WebRequestExecutor() {
    /// <summary locid=3D"M:J#Sys.Net.WebRequestExecutor.#ctor">Base =
class for WebRequestExecutors which handle the actual execution of a =
WebRequest</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._webRequest =3D null;
    this._resultObject =3D null;
}


$type.prototype =3D {
    get_started: function 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();
    },
    get_responseAvailable: function =
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();
    },
    get_timedOut: function 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();
    },
    get_aborted: function 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();
    },
    get_responseData: function 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();
    },
    get_statusCode: function 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();
    },
    get_statusText: function 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();
    },
    get_xml: function 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();
    },
    executeRequest: function WebRequestExecutor$executeRequest() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.executeRequest">Begins execution =
of the request.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    abort: function WebRequestExecutor$abort() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.abort">Aborts the =
request.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    getAllResponseHeaders: function =
WebRequestExecutor$getAllResponseHeaders() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.getAllResponseHeaders">Returns =
all the responses header.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    },
    getResponseHeader: function =
WebRequestExecutor$getResponseHeader(header) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.getResponseHeader">Returns a =
response header.</summary>
        /// <param name=3D"header" type=3D"String">The requested =
header.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "header", type: String}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    },
    get_webRequest: function 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;
    },
    _set_webRequest: function WebRequestExecutor$_set_webRequest(value) =
{
        if (this.get_started()) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, =
'set_webRequest'));
        }
        this._webRequest =3D value;
    },
    get_object: function WebRequestExecutor$get_object() {
        /// <value locid=3D"P:J#Sys.Net.WebRequestExecutor.object">The =
JSON eval'd response.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var result =3D this._resultObject;
        if (!result) {
            this._resultObject =3D result =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData(=
));
        }
        return result;
    }
}
$type.registerClass('Sys.Net.WebRequestExecutor');
Sys.Net.XMLDOM =3D function XMLDOM(markup) {
    /// <summary locid=3D"M:J#Sys.Net.XMLDOM.#ctor">Creates an XML =
document from an XML string.</summary>
    /// <param name=3D"markup" type=3D"String">The XML string to =
parse.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "markup", type: String}
    ]);
    if (e) throw e;
    if (!window.DOMParser) {
        var ex, 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;
}

$type =3D Sys.Net.XMLHttpExecutor =3D function XMLHttpExecutor() {
    /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.#ctor">XMLHttpExecutor</summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();

    Sys.Net.XMLHttpExecutor.initializeBase(this);

    var _this =3D this;

    this._onReadyStateChange =3D (function () {
        /*
            readyState values:
            0 =3D uninitialized
            1 =3D loading
            2 =3D loaded
            3 =3D interactive
            4 =3D complete
        */
        if (_this._xmlHttpRequest.readyState =3D=3D=3D 4 /*complete*/) {
            try {
                if (typeof(_this._xmlHttpRequest.status) =3D=3D=3D =
"undefined") {
                    return;
                }
            }
            catch(ex) {
                return;
            }
           =20
            _this._clearTimer();
            _this._responseAvailable =3D true;
                _this._webRequest.completed(Sys.EventArgs.Empty);
                if (_this._xmlHttpRequest) {
                    _this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
                    _this._xmlHttpRequest =3D null;
                }
        }
    });

    this._clearTimer =3D (function() {
        if (_this._timer) {
            window.clearTimeout(_this._timer);
            _this._timer =3D null;
        }
    });

    this._onTimeout =3D (function() {
        if (!_this._responseAvailable) {
            _this._clearTimer();
            _this._timedOut =3D true;
            var xhr =3D _this._xmlHttpRequest;
            xhr.onreadystatechange =3D Function.emptyMethod;
            xhr.abort();
            _this._webRequest.completed(Sys.EventArgs.Empty);
            _this._xmlHttpRequest =3D null;
        }
    });

}

$type.prototype =3D {

    get_timedOut: function XMLHttpExecutor$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.timedOut">True if the executor has =
timed out.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._timedOut;
    },

    get_started: function XMLHttpExecutor$get_started() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.started">True if the executor has =
started.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._started;
    },

    get_responseAvailable: function =
XMLHttpExecutor$get_responseAvailable() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.responseAvailable">True if a =
response is available.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._responseAvailable;
    },

    get_aborted: function XMLHttpExecutor$get_aborted() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.aborted">True if the executor has =
been aborted.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._aborted;
    },

    executeRequest: function XMLHttpExecutor$executeRequest() {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.executeRequest">Invokes the =
request.</summary>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var request =3D this.get_webRequest();
        this._webRequest =3D request;

        if (this._started) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, =
'executeRequest'));
        }
        if (!this._webRequest) {
            throw Error.invalidOperation(Sys.Res.nullWebRequest);
        }

        var body =3D request.get_body();
        var headers =3D request.get_headers();
        var xhr =3D new XMLHttpRequest();
        this._xmlHttpRequest =3D xhr;
        xhr.onreadystatechange =3D this._onReadyStateChange;
        var verb =3D request.get_httpVerb();
        xhr.open(verb, request.getResolvedUrl(), true /*async*/);
        xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
        if (headers) {
            for (var header in headers) {
                var val =3D headers[header];
                if (typeof(val) !=3D=3D "function")
                    xhr.setRequestHeader(header, val);
            }
        }

        if (verb.toLowerCase() =3D=3D=3D "post") {
            if ((headers =3D=3D=3D null) || !headers['Content-Type']) {
                xhr.setRequestHeader('Content-Type', =
'application/x-www-form-urlencoded; charset=3Dutf-8');
            }

            if (!body) {
                body =3D "";
            }
        }

        var timeout =3D request.get_timeout();
        if (timeout > 0) {
            this._timer =3D =
window.setTimeout(Function.createDelegate(this, this._onTimeout), =
timeout);
        }
        xhr.send(body);
        this._started =3D true;
    },

    getResponseHeader: function =
XMLHttpExecutor$getResponseHeader(header) {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.getResponseHeader">Returns a =
response header.</summary>
        /// <param name=3D"header" type=3D"String">The requested =
header.</param>
        /// <returns type=3D"String">The value of the header.</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 er, result;
        try {
            result =3D this._xmlHttpRequest.getResponseHeader(header);
        } catch (er) {
        }
        if (!result) result =3D "";
        return result;
    },

    getAllResponseHeaders: function =
XMLHttpExecutor$getAllResponseHeaders() {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.getAllResponseHeaders">Returns all =
the responses header.</summary>
        /// <returns type=3D"String">The text of all the =
headers.</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();
    },

    get_responseData: function XMLHttpExecutor$get_responseData() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.responseData">The text of the =
response.</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;
    },

    get_statusCode: function XMLHttpExecutor$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.statusCode">The status code of the =
response.</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 ex, result =3D 0;
        try {
            result =3D this._xmlHttpRequest.status;
        }
        catch(ex) {
        }
        return result;
    },

    get_statusText: function XMLHttpExecutor$get_statusText() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.statusText">The status text of the =
repsonse.</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;
    },

    get_xml: function XMLHttpExecutor$get_xml() {
        /// <value locid=3D"P:J#Sys.Net.XMLHttpExecutor.xml">The =
response in xml format.</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 xhr =3D this._xmlHttpRequest;
        var xml =3D xhr.responseXML;
        if (!xml || !xml.documentElement) {

            xml =3D Sys.Net.XMLDOM(xhr.responseText);

            if (!xml || !xml.documentElement)
                return null;
        }
        else if (navigator.userAgent.indexOf('MSIE') !=3D=3D -1) {
            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;
    },

    abort: function XMLHttpExecutor$abort() {
        /// <summary locid=3D"M:J#Sys.Net.XMLHttpExecutor.abort">Aborts =
the request.</summary>
        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();
        var xhr =3D this._xmlHttpRequest;
        if (xhr && !this._responseAvailable) {

            xhr.onreadystatechange =3D Function.emptyMethod;
            xhr.abort();
           =20
            this._xmlHttpRequest =3D null;           =20

            this._webRequest.completed(Sys.EventArgs.Empty);
        }
    }
}
$type.registerClass('Sys.Net.XMLHttpExecutor', =
Sys.Net.WebRequestExecutor);
$type =3D Sys.Net._WebRequestManager =3D function _WebRequestManager() {
    /// <summary =
locid=3D"P:J#Sys.Net.WebRequestManager.#ctor"></summary>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._defaultExecutorType =3D "Sys.Net.XMLHttpExecutor";
}

$type.prototype =3D {
    add_invokingRequest: function =
_WebRequestManager$add_invokingRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequestManager.invokingRequest"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "invokingRequest", handler);
    },
    remove_invokingRequest: function =
_WebRequestManager$remove_invokingRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "invokingRequest", =
handler);
    },

    add_completedRequest: function =
_WebRequestManager$add_completedRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequestManager.completedRequest"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "completedRequest", handler);
    },
    remove_completedRequest: function =
_WebRequestManager$remove_completedRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "completedRequest", =
handler);
    },
    get_defaultTimeout: function _WebRequestManager$get_defaultTimeout() =
{
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequestManager.defaultTimeout">The default =
timeout for requests in milliseconds.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultTimeout || 0;
    },
    set_defaultTimeout: function =
_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;
    },

    get_defaultExecutorType: function =
_WebRequestManager$get_defaultExecutorType() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestManager.defaultExecutorType">The default =
executor type name.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultExecutorType;
    },
    set_defaultExecutorType: function =
_WebRequestManager$set_defaultExecutorType(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._defaultExecutorType =3D value;
    },

    executeRequest: function =
_WebRequestManager$executeRequest(webRequest) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestManager.executeRequest">Executes a =
request.</summary>
        /// <param name=3D"webRequest" type=3D"Sys.Net.WebRequest">The =
webRequest to execute.</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 er, failed;
            try {
                var executorType =3D =
window.eval(this._defaultExecutorType);
                executor =3D new executorType();
            }
            catch (er) {
                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()) {
            var evArgs =3D new =
Sys.Net.NetworkRequestEventArgs(webRequest);
            Sys.Observer.raiseEvent(this, "invokingRequest", evArgs);
            if (!evArgs.get_cancel()) {
                executor.executeRequest();
            }
        }
    }
}

$type.registerClass('Sys.Net._WebRequestManager');

Sys.Net.WebRequestManager =3D new Sys.Net._WebRequestManager();
$type =3D Sys.Net.NetworkRequestEventArgs =3D function =
NetworkRequestEventArgs(webRequest) {
    /// <summary =
locid=3D"M:J#Sys.Net.NetworkRequestEventArgs.#ctor">This class is raised =
by the WebRequestManager when a WebRequest is about to be =
executed.</summary>
    /// <param name=3D"webRequest" type=3D"Sys.Net.WebRequest">The =
identifier for the event.</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;
}

$type.prototype =3D {
    get_webRequest: function NetworkRequestEventArgs$get_webRequest() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.Net.NetworkRequestEventArgs.webRequest">The request =
about to be executed.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._webRequest;
    }
}

$type.registerClass('Sys.Net.NetworkRequestEventArgs', =
Sys.CancelEventArgs);
$type =3D Sys.Net.WebRequest =3D function WebRequest() {
    /// <summary locid=3D"M:J#Sys.Net.WebRequest.#ctor">WebRequest =
class</summary>
    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;
}

$type.prototype =3D {
    add_completed: function WebRequest$add_completed(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequest.completed"></summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "completed", handler);
    },
    remove_completed: function WebRequest$remove_completed(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "completed", handler);
    },

    completed: function WebRequest$completed(eventArgs) {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.completed">The =
completed method should be called when the request is =
completed.</summary>
        /// <param name=3D"eventArgs" type=3D"Sys.EventArgs">The event =
args to raise the event with.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "eventArgs", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        function raise(source, sender, eventName) {
            var handler =3D Sys.Observer._getContext(source, =
true).events.getHandler(eventName);
            if (handler) {
                handler(sender, eventArgs);
            }
        }
        raise(Sys.Net.WebRequestManager, this._executor, =
"completedRequest");
        raise(this, this._executor, "completed");
        Sys.Observer.clearEventHandlers(this, "completed");
    },

    get_url: function WebRequest$get_url() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequest.url">The url.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._url;
    },
    set_url: function WebRequest$set_url(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._url =3D value;
    },

    get_headers: function WebRequest$get_headers() {
        /// <value locid=3D"P:J#Sys.Net.WebRequest.headers">The headers =
dictionary for the request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._headers;
    },

    get_httpVerb: function WebRequest$get_httpVerb() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequest.httpVerb">The httpVerb for the =
request.</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;
    },
    set_httpVerb: function 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;
    },

    get_body: function WebRequest$get_body() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebRequest.body">The body of the request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._body;
    },
    set_body: function WebRequest$set_body(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._body =3D value;
    },

    get_userContext: function WebRequest$get_userContext() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebRequest.userContext">The userContext of the =
request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._userContext;
    },
    set_userContext: function WebRequest$set_userContext(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._userContext =3D value;
    },

    get_executor: function WebRequest$get_executor() {
        /// <value type=3D"Sys.Net.WebRequestExecutor" =
locid=3D"P:J#Sys.Net.WebRequest.executor">The executor for the =
request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._executor || null;
    },
    set_executor: function WebRequest$set_executor(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.Net.WebRequestExecutor}]);
        if (e) throw e;
        if (this._executor && this._executor.get_started()) {
            throw =
Error.invalidOperation(Sys.Res.setExecutorAfterActive);
        }
        this._executor =3D value;
        value._set_webRequest(this);
    },

    get_timeout: function WebRequest$get_timeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequest.timeout">The timeout in milliseconds for =
the request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timeout || =
Sys.Net.WebRequestManager.get_defaultTimeout();
    },
    set_timeout: function 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;
    },

    getResolvedUrl: function WebRequest$getResolvedUrl() {
        /// <summary locid=3D"M:J#raise">The getResolvedUrl method =
returns the url resolved against the base url of the page if =
set.</summary>
        /// <returns type=3D"String">The resolved url for the =
request.</returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return Sys.Net.WebRequest._resolveUrl(this._url);
    },

    invoke: function WebRequest$invoke() {
        /// <summary locid=3D"M:J#raise">Invokes the request</summary>
        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;
    }
}

$type._resolveUrl =3D function WebRequest$_resolveUrl(url, baseUrl) {
    if (url && url.indexOf('://') > 0) {
        return url;
    }

    if (!baseUrl || !baseUrl.length) {
        var baseElement =3D Sys.get('base');
        if (baseElement && baseElement.href && baseElement.href.length) =
{
            baseUrl =3D baseElement.href;
        }
        else {
            baseUrl =3D document.URL;
        }
    }

    var qsStart =3D baseUrl.indexOf('?');
    if (qsStart > 0) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    qsStart =3D baseUrl.indexOf('#');
    if (qsStart > 0) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    baseUrl =3D baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1);

    if (!url || !url.length) {
        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;
    }
}

$type._createQueryString =3D function =
WebRequest$_createQueryString(queryString, encodeMethod, addParams) {
    encodeMethod =3D encodeMethod || encodeURIComponent;
    var i =3D 0, obj, val, arg, sb =3D new Sys.StringBuilder();
    if (queryString) {
        for (arg in queryString) {
            obj =3D queryString[arg];
            if (typeof(obj) =3D=3D=3D "function") continue;
            val =3D =
Sys.Serialization.JavaScriptSerializer.serialize(obj);
            if (i++) {
                sb.append('&');
            }
            sb.append(arg);
            sb.append('=3D');
            sb.append(encodeMethod(val));
        }
    }
    if (addParams) {
        if (i) {
            sb.append('&');
        }
        sb.append(addParams);
    }
    return sb.toString();
}

$type._createUrl =3D function WebRequest$_createUrl(url, queryString, =
addParams) {
    if (!queryString && !addParams) {
        return url;
    }
    var qs =3D Sys.Net.WebRequest._createQueryString(queryString, null, =
addParams);
    return qs.length
        ? url + ((url && url.indexOf('?') >=3D 0) ? "&" : "?") + qs
        : url;
}

$type.registerClass('Sys.Net.WebRequest');



Type.registerNamespace('Sys.Net');

$type =3D Sys.Net.WebServiceProxy =3D function WebServiceProxy() {
    var type =3D Object.getType(this);
   =20
    if (type._staticInstance && =
(typeof(type._staticInstance.get_enableJsonp) =3D=3D=3D "function")) {
        this._jsonp =3D (type._staticInstance.get_enableJsonp());
    }
}
$type.prototype =3D {
    get_timeout: function WebServiceProxy$get_timeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebServiceProxy.timeout">The timeout in =
milliseconds for the service.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timeout || 0;
    },
    set_timeout: function 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;
    },
    get_defaultUserContext: function =
WebServiceProxy$get_defaultUserContext() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultUserContext">The default =
userContext for this service.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return (typeof(this._userContext) =3D=3D=3D "undefined") ? null =
: this._userContext;
    },
    set_defaultUserContext: function =
WebServiceProxy$set_defaultUserContext(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._userContext =3D value;
    },
    get_defaultSucceededCallback: function =
WebServiceProxy$get_defaultSucceededCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultSucceededCallback">Returns =
the default succeededCallback for this service.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._succeeded || null;
    },
    set_defaultSucceededCallback: function =
WebServiceProxy$set_defaultSucceededCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._succeeded =3D value;
    },
    get_defaultFailedCallback: function =
WebServiceProxy$get_defaultFailedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultFailedCallback">Returns the =
default failedCallback for this service.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._failed || null;
    },
    set_defaultFailedCallback: function =
WebServiceProxy$set_defaultFailedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._failed =3D value;
    },
    get_enableJsonp: function WebServiceProxy$get_enableJsonp() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebServiceProxy.enableJsonp">Specifies whether the =
service supports JSONP for cross domain calling.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return !!this._jsonp;
    },
    set_enableJsonp: function WebServiceProxy$set_enableJsonp(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._jsonp =3D value;
    },
    get_path: function WebServiceProxy$get_path() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceProxy.path">The path to this =
service.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || null;
    },
    set_path: function WebServiceProxy$set_path(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._path =3D value;
    },
    get_jsonpCallbackParameter: function =
WebServiceProxy$get_jsonpCallbackParameter() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceProxy.jsonpCallbackParameter">Specifies =
the parameter name that contains the callback function name for a JSONP =
request.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._callbackParameter || "callback";
    },
    set_jsonpCallbackParameter: function =
WebServiceProxy$set_jsonpCallbackParameter(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._callbackParameter =3D value;
    },
    _invoke: function WebServiceProxy$_invoke(servicePath, methodName, =
useGet, params, onSuccess, onFailure, userContext) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebServiceProxy._invoke"></summary>
        /// <param name=3D"servicePath" type=3D"String">Path to the =
webservice</param>
        /// <param name=3D"methodName" type=3D"String">Method to =
invoke</param>
        /// <param name=3D"useGet" type=3D"Boolean">Controls whether =
requests use HttpGet</param>
        /// <param name=3D"params">Method args.</param>
        /// <param name=3D"onSuccess" type=3D"Function" =
mayBeNull=3D"true" optional=3D"true">Success callback</param>
        /// <param name=3D"onFailure" type=3D"Function" =
mayBeNull=3D"true" optional=3D"true">Failure callback</param>
        /// <param name=3D"userContext" mayBeNull=3D"true" =
optional=3D"true">Success callback</param>
        /// <returns type=3D"Sys.Net.WebRequest" =
mayBeNull=3D"true">Returns the request that was sent</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;

        onSuccess =3D onSuccess || this.get_defaultSucceededCallback();
        onFailure =3D onFailure || this.get_defaultFailedCallback();
        if (userContext =3D=3D=3D null || typeof userContext =3D=3D=3D =
'undefined') userContext =3D this.get_defaultUserContext();
        return Sys.Net.WebServiceProxy.invoke(servicePath, methodName, =
useGet, params, onSuccess, onFailure, userContext, this.get_timeout(), =
this.get_enableJsonp(), this.get_jsonpCallbackParameter());
    }
}
$type.registerClass('Sys.Net.WebServiceProxy');

$type.invoke =3D function WebServiceProxy$invoke(servicePath, =
methodName, useGet, params, onSuccess, onFailure, userContext, timeout, =
enableJsonp, jsonpCallbackParameter) {
    /// <summary locid=3D"M:J#Sys.Net.WebServiceProxy.invoke"></summary>
    /// <param name=3D"servicePath" type=3D"String">Path to the =
webservice</param>
    /// <param name=3D"methodName" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">Method to invoke</param>
    /// <param name=3D"useGet" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">Controls whether requests use HttpGet</param>
    /// <param name=3D"params" mayBeNull=3D"true" =
optional=3D"true">Method args.</param>
    /// <param name=3D"onSuccess" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true">Success callback</param>
    /// <param name=3D"onFailure" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true">Failure callback</param>
    /// <param name=3D"userContext" mayBeNull=3D"true" =
optional=3D"true">Success callback</param>
    /// <param name=3D"timeout" type=3D"Number" optional=3D"true" =
mayBeNull=3D"true">Timeout in milliseconds</param>
    /// <param name=3D"enableJsonp" type=3D"Boolean" optional=3D"true" =
mayBeNull=3D"true">Whether to use JSONP if the servicePath is for a =
different domain (default is true).</param>
    /// <param name=3D"jsonpCallbackParameter" type=3D"String" =
optional=3D"true" mayBeNull=3D"true">The name of the callback parameter =
for JSONP request (default is callback).</param>
    /// <returns type=3D"Sys.Net.WebRequest" mayBeNull=3D"true">Returns =
the request that was sent (null for JSONP requests).</returns>
    var e =3D Function._validateParams(arguments, [
        {name: "servicePath", type: String},
        {name: "methodName", type: String, mayBeNull: true, optional: =
true},
        {name: "useGet", type: Boolean, mayBeNull: true, 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, mayBeNull: true, optional: =
true},
        {name: "enableJsonp", type: Boolean, mayBeNull: true, optional: =
true},
        {name: "jsonpCallbackParameter", type: String, mayBeNull: true, =
optional: true}
    ]);
    if (e) throw e;
    var schemeHost =3D (enableJsonp !=3D=3D false) ? =
Sys.Net.WebServiceProxy._xdomain.exec(servicePath) : null,
        tempCallback, jsonp =3D schemeHost && (schemeHost.length =
=3D=3D=3D 3) &&=20
            ((schemeHost[1] !=3D=3D location.protocol) || (schemeHost[2] =
!=3D=3D location.host));
    useGet =3D jsonp || useGet;
    if (jsonp) {
        jsonpCallbackParameter =3D jsonpCallbackParameter || "callback";
        tempCallback =3D "_jsonp" + Sys._jsonp++;
    }
    if (!params) params =3D {};
    var urlParams =3D params;
    if (!useGet || !urlParams) urlParams =3D {};
    var error, timeoutcookie =3D null, body =3D null,
        url =3D Sys.Net.WebRequest._createUrl(methodName
            ? (servicePath+"/"+encodeURIComponent(methodName))
            : servicePath, urlParams, jsonp ? (jsonpCallbackParameter + =
"=3DSys." + tempCallback) : null);
    if (jsonp) {
        function jsonpComplete(data, statusCode) {
            if (timeoutcookie !=3D=3D null) {
                window.clearTimeout(timeoutcookie);
                timeoutcookie =3D null;
            }
            delete Sys[tempCallback];
            tempCallback =3D null;=20
            if ((typeof(statusCode) !=3D=3D "undefined") && (statusCode =
!=3D=3D 200)) {
                if (onFailure) {
                    error =3D new Sys.Net.WebServiceError(false,
                            data.Message || =
String.format(Sys.Res.webServiceFailedNoMsg, methodName),
                            data.StackTrace || null,
                            data.ExceptionType || null,
                            data);
                    error._statusCode =3D statusCode;
                    onFailure(error, userContext, methodName);
                }
                else {
                    if (data.StackTrace && data.Message) {
                        error =3D data.StackTrace + "-- " + =
data.Message;
                    }
                    else {
                        error =3D data.StackTrace || data.Message;
                    }
                    error =3D String.format(error ? =
Sys.Res.webServiceFailed : Sys.Res.webServiceFailedNoMsg, methodName, =
error);
                    throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceFailed, methodName, error));
                }
            }
            else if (onSuccess) {
                onSuccess(data, userContext, methodName);
            }
        }
        Sys[tempCallback] =3D jsonpComplete;
        Sys._loadJsonp(url, function() {
            if (tempCallback) {
                jsonpComplete({ Message: =
String.format(Sys.Res.webServiceFailedNoMsg, methodName) }, -1);
            }
        });
        return null;
    }
    var request =3D new Sys.Net.WebRequest();
    request.set_url(url);
    request.get_headers()['Content-Type'] =3D 'application/json; =
charset=3Dutf-8';
    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 > 0) request.set_timeout(timeout);
    request.invoke();
   =20
    function onComplete(response, eventArgs) {
        if (response.get_responseAvailable()) {
            var ex, statusCode =3D response.get_statusCode();
            var result =3D null;
            var isJson;

            try {
                var contentType =3D =
response.getResponseHeader("Content-Type");
                isJson =3D contentType.startsWith("application/json");
                result =3D isJson ? response.get_object() :
                    (contentType.startsWith("text/xml") ? =
response.get_xml() : 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, result);
                }
            }
            else if (isJson) {
                result =3D (!result || (typeof(result.d) =3D=3D=3D =
"undefined")) ? result : result.d;
            }
            if (((statusCode < 200) || (statusCode >=3D 300)) || =
errorObj) {
                if (onFailure) {
                    if (!result || !errorObj) {
                        result =3D new Sys.Net.WebServiceError(false =
/*timedout*/, String.format(Sys.Res.webServiceFailedNoMsg, methodName));
                    }
                    result._statusCode =3D statusCode;
                    onFailure(result, userContext, methodName);
                }
                else {
                    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 timedOut =3D response.get_timedOut(),
                msg =3D String.format((timedOut ? =
Sys.Res.webServiceTimedOut : Sys.Res.webServiceFailedNoMsg), =
methodName);
            if (onFailure) {
                onFailure(new Sys.Net.WebServiceError(timedOut, msg, "", =
""), userContext, methodName);
            }
            else {
                throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, msg);
            }
        }
    }

    return request;
}

$type._createFailedError =3D function =
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;
}

$type._defaultFailedCallback =3D function =
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));
}

$type._generateTypedConstructor =3D function =
WebServiceProxy$_generateTypedConstructor(type) {
    return function(properties) {
        if (properties) {
            for (var name in properties) {
                this[name] =3D properties[name];
            }
        }
        this.__type =3D type;
    }
}

Sys._jsonp =3D 0;

$type._xdomain =3D /^\s*([a-zA-Z0-9\+\-\.]+\:)\/\/([^?#\/]+)/;

Sys._loadJsonp =3D function _loadJsonp(src, callback) {
    var script =3D document.createElement('script');
    script.type =3D 'text/javascript';
    script.src =3D src;
    var attachEvent =3D script.attachEvent;
    function onEvent() {
        if (!attachEvent || /loaded|complete/.test(script.readyState)) {
            if (attachEvent) {
                script.detachEvent("onreadystatechange", onEvent);
            }
            else {
                script.removeEventListener("load", onEvent, false);
                script.removeEventListener("error", onEvent, false);
            }
            callback.apply(script);
            script =3D null;
        }
    }
    if (attachEvent) {
        script.attachEvent("onreadystatechange", onEvent);
    }
    else {
        script.addEventListener("load", onEvent, false);
        script.addEventListener("error", onEvent, false);
    }   =20
    Sys.get("head").appendChild(script);
}
$type =3D Sys.Net.WebServiceError =3D function WebServiceError(timedOut, =
message, stackTrace, exceptionType, errorObject) {
    /// <summary locid=3D"M:J#Sys.Net.WebServiceError.#ctor">Represents =
a webservice error</summary>
    /// <param name=3D"timedOut" type=3D"Boolean">Whether the service =
timed out.</param>
    /// <param name=3D"message" type=3D"String" mayBeNull=3D"true">The =
error message.</param>
    /// <param name=3D"stackTrace" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">The stack trace of the error.</param>
    /// <param name=3D"exceptionType" type=3D"String" mayBeNull=3D"true" =
optional=3D"true">The server exception type.</param>
    /// <param name=3D"errorObject" type=3D"Object" mayBeNull=3D"true" =
optional=3D"true">The raw error information.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "timedOut", type: Boolean},
        {name: "message", type: String, mayBeNull: true},
        {name: "stackTrace", type: String, mayBeNull: true, optional: =
true},
        {name: "exceptionType", type: String, mayBeNull: true, optional: =
true},
        {name: "errorObject", type: Object, mayBeNull: true, optional: =
true}
    ]);
    if (e) throw e;
    this._timedOut =3D timedOut;
    this._message =3D message;
    this._stackTrace =3D stackTrace;
    this._exceptionType =3D exceptionType;
    this._errorObject =3D errorObject;
    this._statusCode =3D -1;
}

$type.prototype =3D {
    get_timedOut: function WebServiceError$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebServiceError.timedOut">Whether the service =
failed due to timeout.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timedOut;
    },

    get_statusCode: function WebServiceError$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebServiceError.statusCode">Int representing the =
status of the response.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._statusCode;
    },

    get_message: function WebServiceError$get_message() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.message">Error message</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._message;
    },

    get_stackTrace: function WebServiceError$get_stackTrace() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.stackTrace">Stack trace of the =
error.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._stackTrace || "";
    },

    get_exceptionType: function WebServiceError$get_exceptionType() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.exceptionType">Exception type of =
the error.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._exceptionType || "";
    },
   =20
    get_errorObject: function WebServiceError$get_errorObject() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.Net.WebServiceError.errorObject">The raw error object =
returned by the service.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._errorObject || null;
    }
}
$type.registerClass('Sys.Net.WebServiceError');

Type.registerNamespace("Sys.Services");
var ns =3D Sys.Services;
var service =3D "Service",
    role =3D "Role",
    auth =3D "Authentication",
    profile =3D "Profile";
function setPath(path) {
    this._path =3D path;
}
ns[auth+service] =3D {
    set_path: setPath,
    _setAuthenticated: function(auth) {
        this._auth =3D auth;
    }
};
ns["_" + auth + service] =3D {};

ns[profile + service] =3D { set_path: setPath };
ns["_" + profile + service] =3D {};
ns.ProfileGroup =3D function ns$ProfileGroup(properties) {
    this._propertygroup =3D properties;
}

ns[role + service] =3D { set_path: setPath };
ns["_" + role + service] =3D {};



Sys._domLoaded();
}

if (Sys.loader) {
	Sys.loader.registerScript("MicrosoftAjax", null, execute);
}
else {
	execute();
}

})(window, window.Sys);
var $get, $create, $addHandler, $addHandlers, $clearHandlers;

Type.registerNamespace('Sys');
Sys.Res=3D{
"argumentInteger":"Value must be an integer.",
"argumentType":"Object cannot be converted to the required type.",
"argumentNull":"Value cannot be null.",
"scriptAlreadyLoaded":"The script \u0027{0}\u0027 has been referenced =
multiple times. If referencing Microsoft AJAX scripts explicitly, set =
the MicrosoftAjaxMode property of the ScriptManager to Explicit.",
"scriptDependencyNotFound":"The script \u0027{0}\u0027 failed to load =
because it is dependent on script \u0027{1}\u0027.",
"formatBadFormatSpecifier":"Format specifier was invalid.",
"requiredScriptReferenceNotIncluded":"\u0027{0}\u0027 requires that you =
have included a script reference to \u0027{1}\u0027.",
"webServiceFailedNoMsg":"The server method \u0027{0}\u0027 failed.",
"argumentDomElement":"Value must be a DOM element.",
"actualValue":"Actual value was {0}.",
"enumInvalidValue":"\u0027{0}\u0027 is not a valid value for enum {1}.",
"scriptLoadFailed":"The script \u0027{0}\u0027 could not be loaded.",
"parameterCount":"Parameter count mismatch.",
"cannotDeserializeEmptyString":"Cannot deserialize empty string.",
"formatInvalidString":"Input string was not in a correct format.",
"argument":"Value does not fall within the expected range.",
"cannotDeserializeInvalidJson":"Cannot deserialize. The data does not =
correspond to valid JSON.",
"cannotSerializeNonFiniteNumbers":"Cannot serialize non finite =
numbers.",
"argumentUndefined":"Value cannot be undefined.",
"webServiceInvalidReturnType":"The server method \u0027{0}\u0027 =
returned an invalid type. Expected type: {1}",
"servicePathNotSet":"The path to the web service has not been set.",
"argumentTypeWithTypes":"Object of type \u0027{0}\u0027 cannot be =
converted to type \u0027{1}\u0027.",
"paramName":"Parameter name: {0}",
"nullReferenceInPath":"Null reference while evaluating data path: =
\u0027{0}\u0027.",
"format":"One of the identified items was in an invalid format.",
"assertFailedCaller":"Assertion Failed: {0}\r\nat {1}",
"argumentOutOfRange":"Specified argument was out of the range of valid =
values.",
"webServiceTimedOut":"The server method \u0027{0}\u0027 timed out.",
"notImplemented":"The method or operation is not implemented.",
"assertFailed":"Assertion Failed: {0}",
"invalidOperation":"Operation is not valid due to the current state of =
the object.",
"breakIntoDebugger":"{0}\r\n\r\nBreak into debugger?",
"invokeCalledTwice":"Cannot call invoke more than once.",
"argumentTypeName":"Value is not the name of an existing type.",
"cantBeCalledAfterDispose":"Can\u0027t be called after dispose.",
"webServiceFailed":"The server method \u0027{0}\u0027 failed with the =
following error: {1}",
"componentCantSetIdAfterAddedToApp":"The id property of a component =
can\u0027t be set after it\u0027s been added to the Application =
object.",
"behaviorDuplicateName":"A behavior with name \u0027{0}\u0027 already =
exists or it is the name of an existing property on the target =
element.",
"notATypeName":"Value is not a valid type name.",
"elementNotFound":"An element with id \u0027{0}\u0027 could not be =
found.",
"stateMustBeStringDictionary":"The state object can only have null and =
string fields.",
"invalidExecutorType":"Could not create a valid =
Sys.Net.WebRequestExecutor from: {0}.",
"boolTrueOrFalse":"Value must be \u0027true\u0027 or =
\u0027false\u0027.",
"cannotCallBeforeResponse":"Cannot call {0} when responseAvailable is =
false.",
"scriptLoadFailedNoHead":"ScriptLoader requires pages to contain a =
\u003chead\u003e element.",
"stringFormatInvalid":"The format string is invalid.",
"referenceNotFound":"Component \u0027{0}\u0027 was not found.",
"enumReservedName":"\u0027{0}\u0027 is a reserved name that can\u0027t =
be used as an enum value name.",
"circularParentChain":"The chain of control parents can\u0027t have =
circular references.",
"namespaceContainsNonObject":"Object {0} already exists and is not an =
object.",
"undefinedEvent":"\u0027{0}\u0027 is not an event.",
"invalidTimeout":"Value must be greater than or equal to zero.",
"cannotAbortBeforeStart":"Cannot abort when executor has not started.",
"observableConflict":"Object already contains a member with the name =
\u0027{0}\u0027.",
"invalidHttpVerb":"httpVerb cannot be set to an empty or null string.",
"nullWebRequest":"Cannot call executeRequest with a null webRequest.",
"historyCannotEnableHistory":"Cannot set enableHistory after =
initialization.",
"eventHandlerInvalid":"Handler was not added through the =
Sys.UI.DomEvent.addHandler method.",
"scriptLoadFailedDebug":"The script \u0027{0}\u0027 failed to load. =
Check for:\r\n Inaccessible path.\r\n Script errors. (IE) Enable =
\u0027Display a notification about every script error\u0027 under =
advanced settings.",
"propertyNotWritable":"\u0027{0}\u0027 is not a writable property.",
"enumInvalidValueName":"\u0027{0}\u0027 is not a valid name for an enum =
value.",
"cannotCallOnceStarted":"Cannot call {0} once started.",
"controlAlreadyDefined":"A control is already associated with the =
element.",
"addHandlerCantBeUsedForError":"Can\u0027t add a handler for the error =
event using this method. Please set the window.onerror property =
instead.",
"badBaseUrl1":"Base URL does not contain ://.",
"badBaseUrl2":"Base URL does not contain another /.",
"badBaseUrl3":"Cannot find last / in base URL.",
"setExecutorAfterActive":"Cannot set executor after it has become =
active.",
"cantAddNonFunctionhandler":"Can\u0027t add a handler that is not a =
function.",
"invalidNameSpace":"Value is not a valid namespace identifier.",
"notAnInterface":"Value is not a valid interface.",
"eventHandlerNotFunction":"Handler must be a function.",
"propertyNotAnArray":"\u0027{0}\u0027 is not an Array property.",
"namespaceContainsClass":"Object {0} already exists as a class, enum, or =
interface.",
"typeRegisteredTwice":"Type {0} has already been registered. The type =
may be defined multiple times or the script file that defines it may =
have already been loaded. A possible cause is a change of settings =
during a partial update.",
"cantSetNameAfterInit":"The name property can\u0027t be set on this =
object after initialization.",
"historyMissingFrame":"For the history feature to work in IE, the page =
must have an iFrame element with id \u0027__historyFrame\u0027 pointed =
to a page that gets its title from the \u0027title\u0027 query string =
parameter and calls Sys.Application._onIFrameLoad() on the parent =
window. This can be done by setting EnableHistory to true on =
ScriptManager.",
"appDuplicateComponent":"Two components with the same id \u0027{0}\u0027 =
can\u0027t be added to the application.",
"historyCannotAddHistoryPointWithHistoryDisabled":"A history point can =
only be added if enableHistory is set to true.",
"expectedElementOrId":"Value must be a DOM element or DOM element id.",
"selectorNotFound":"An element with selector \u0027{0}\u0027 could not =
be found.",
"cannotCallOutsideHandler":"Cannot call {0} outside of a completed event =
handler.",
"methodNotFound":"No method found with name \u0027{0}\u0027.",
"arrayParseBadFormat":"Value must be a valid string representation for =
an array. It must start with a \u0027[\u0027 and end with a =
\u0027]\u0027.",
"cannotSerializeObjectWithCycle":"Cannot serialize object with cyclic =
reference within child properties.",
"stateFieldNameInvalid":"State field names must not contain any =
\u0027=3D\u0027 characters.",
"stringFormatBraceMismatch":"The format string contains an unmatched =
opening or closing brace.",
"enumValueNotInteger":"An enumeration definition can only contain =
integer values.",
"propertyNullOrUndefined":"Cannot set the properties of \u0027{0}\u0027 =
because it returned a null value.",
"expectedDomElementOrSelector":"\u0027{0}\u0027 must be a DOM element or =
DOM element selector.",
"argumentDomNode":"Value must be a DOM element or a text node.",
"componentCantSetIdTwice":"The id property of a component can\u0027t be =
set more than once.",
"createComponentOnDom":"Value must be null for Components that are not =
Controls or Behaviors.",
"createNoDom":"Value must not be null for Controls and Behaviors.",
"cantAddWithoutId":"Can\u0027t add a component that doesn\u0027t have an =
id.",
"urlTooLong":"The history state must be small enough to not make the url =
larger than {0} characters.",
"notObservable":"Instances of type \u0027{0}\u0027 cannot be observed.",
"badTypeName":"Value is not the name of the type being registered or the =
name is a reserved word."
};

------=_NextPart_000_0000_01CC0193.A0CC0FD0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.zulupa.com.br/ScriptResource.axd?d=nJ9q7-XhokvmdKLsRAdcn3p8-APpFGotXekDXH736jtDActEDgKz-ipiLBPpuybpDUxolIurlbYU7TpEE_GZKcS9EufOedOMNFnspca4G7K4WmdXlEg7IivwKAW06SfE-tWvnKxe68BG34a7m8E53vDlrdM1&t=ffffffffbd2983fc

// Name:        MicrosoftAjaxWebForms.debug.js
// Assembly:    AjaxControlToolkit
// Version:     4.1.40412.0
// FileVersion: 4.1.40412.2
// (c) 2010 CodePlex Foundation
(function() {

function execute() {

Type._registerScript("MicrosoftAjaxWebForms.js", [
	"MicrosoftAjaxCore.js",
	"MicrosoftAjaxSerialization.js",
	"MicrosoftAjaxNetwork.js",
	"MicrosoftAjaxComponentModel.js"]);
var $type, $prototype;
Type.registerNamespace('Sys.WebForms');

$type =3D Sys.WebForms.BeginRequestEventArgs =3D function =
BeginRequestEventArgs(request, postBackElement, updatePanelsToUpdate) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.BeginRequestEventArgs.#ctor">The arguments for =
the PageRequestManager's beginRequest event. The beginRequest event is =
raised when a request is about to be made.</summary>
    /// <param name=3D"request" type=3D"Sys.Net.WebRequest">The web =
request for the EventArgs.</param>
    /// <param name=3D"postBackElement" domElement=3D"true" =
mayBeNull=3D"true">The postback element that initiated the async =
postback.</param>
    /// <param name=3D"updatePanelsToUpdate" type=3D"Array" =
elementType=3D"String" mayBeNull=3D"true" optional=3D"true">A list of =
UniqueIDs for UpdatePanel controls that are requested to update their =
rendering by the client. Server-side processing may update additional =
UpdatePanels.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "request", type: Sys.Net.WebRequest},
        {name: "postBackElement", mayBeNull: true, domElement: true},
        {name: "updatePanelsToUpdate", type: Array, mayBeNull: true, =
optional: true, elementType: String}
    ]);
    if (e) throw e;
    Sys.WebForms.BeginRequestEventArgs.initializeBase(this);
    this._request =3D request;
    this._postBackElement =3D postBackElement;
    this._updatePanelsToUpdate =3D updatePanelsToUpdate;
}

$type.prototype =3D {
    get_postBackElement: function =
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;
    },
    get_request: function 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;
    },
    get_updatePanelsToUpdate: function =
BeginRequestEventArgs$get_updatePanelsToUpdate() {
        /// <value type=3D"Array" elementType=3D"String" =
locid=3D"P:J#Sys.WebForms.BeginRequestEventArgs.updatePanelsToUpdate"></v=
alue>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._updatePanelsToUpdate ? =
Array.clone(this._updatePanelsToUpdate) : [];
    }
}

$type.registerClass('Sys.WebForms.BeginRequestEventArgs', =
Sys.EventArgs);
$type =3D Sys.WebForms.EndRequestEventArgs =3D function =
EndRequestEventArgs(error, dataItems, response) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.EndRequestEventArgs.#ctor">The arguments for =
the PageRequestManager's endRequest event. The endRequest event is =
raised when a response has finished processing.</summary>
    /// <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;
}

$type.prototype =3D {
    get_dataItems: function 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;
    },

    get_error: function 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;
    },

    get_errorHandled: function 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;
    },
    set_errorHandled: function =
EndRequestEventArgs$set_errorHandled(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._errorHandled =3D value;
    },

    get_response: function 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;
    }
}

$type.registerClass('Sys.WebForms.EndRequestEventArgs', Sys.EventArgs);
$type =3D Sys.WebForms.InitializeRequestEventArgs =3D function =
InitializeRequestEventArgs(request, postBackElement, =
updatePanelsToUpdate) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.InitializeRequestEventArgs.#ctor">The =
arguments for the PageRequestManager's initializeRequest event. The =
initializeRequest event is raised when a request is being prepared and =
can be cancelled.</summary>
    /// <param name=3D"request" type=3D"Sys.Net.WebRequest">The web =
request to be packaged in this EventArgs.</param>
    /// <param name=3D"postBackElement" domElement=3D"true" =
mayBeNull=3D"true">The postback element that initiated the async =
postback.</param>
    /// <param name=3D"updatePanelsToUpdate" type=3D"Array" =
elementType=3D"String" mayBeNull=3D"true" optional=3D"true">A list of =
UniqueIDs for UpdatePanel controls that are requested to update their =
rendering by the client. Server-side processing may update additional =
UpdatePanels.</param>
    var e =3D Function._validateParams(arguments, [
        {name: "request", type: Sys.Net.WebRequest},
        {name: "postBackElement", mayBeNull: true, domElement: true},
        {name: "updatePanelsToUpdate", type: Array, mayBeNull: true, =
optional: true, elementType: String}
    ]);
    if (e) throw e;
    Sys.WebForms.InitializeRequestEventArgs.initializeBase(this);
    this._request =3D request;
    this._postBackElement =3D postBackElement;
    this._updatePanelsToUpdate =3D updatePanelsToUpdate;
}

$type.prototype =3D {
    get_postBackElement: function =
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;
    },
    get_request: function 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;
    },
    get_updatePanelsToUpdate: function =
InitializeRequestEventArgs$get_updatePanelsToUpdate() {
        /// <value type=3D"Array" elementType=3D"String" =
locid=3D"P:J#Sys.WebForms.InitializeRequestEventArgs.updatePanelsToUpdate=
"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._updatePanelsToUpdate ? =
Array.clone(this._updatePanelsToUpdate) : [];
    },
    set_updatePanelsToUpdate: function =
InitializeRequestEventArgs$set_updatePanelsToUpdate(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Array, elementType: String}]);
        if (e) throw e;
        this._updated =3D true;
        this._updatePanelsToUpdate =3D value;
    }
}

$type.registerClass('Sys.WebForms.InitializeRequestEventArgs', =
Sys.CancelEventArgs);
$type =3D Sys.WebForms.PageLoadedEventArgs =3D function =
PageLoadedEventArgs(panelsUpdated, panelsCreated, dataItems) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.PageLoadedEventArgs.#ctor">The arguments for =
the PageRequestManager's pageLoaded event. The pageLoaded event is =
raised after the DOM has been updated.</summary>
    /// <param name=3D"panelsUpdated" type=3D"Array">An array of =
UpdatePanels that were updated.</param>
    /// <param name=3D"panelsCreated" type=3D"Array">An array of =
UpdatePanels that were created.</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();
}

$type.prototype =3D {
    get_dataItems: function 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;
    },

    get_panelsCreated: function 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;
    },

    get_panelsUpdated: function 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;
    }
}

$type.registerClass('Sys.WebForms.PageLoadedEventArgs', Sys.EventArgs);
$type =3D Sys.WebForms.PageLoadingEventArgs =3D function =
PageLoadingEventArgs(panelsUpdating, panelsDeleting, dataItems) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.PageLoadingEventArgs.#ctor">The arguments for =
the PageRequestManager's pageLoading event. The pageLoading event is =
raised before the DOM has been updated.</summary>
    /// <param name=3D"panelsUpdating" type=3D"Array">An array of =
UpdatePanels that are going to be updated.</param>
    /// <param name=3D"panelsDeleting" type=3D"Array">An array of =
UpdatePanels that are going to be deleted.</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();
}

$type.prototype =3D {
    get_dataItems: function 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;
    },

    get_panelsDeleting: function =
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;
    },

    get_panelsUpdating: function =
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;
    }
}

$type.registerClass('Sys.WebForms.PageLoadingEventArgs', Sys.EventArgs);

$type =3D Sys._ScriptLoaderTask =3D function =
_ScriptLoaderTask(scriptElement, completedCallback) {
    /// <summary locid=3D"M:J#Sys._ScriptLoaderTask.#ctor"></summary>
    /// <param name=3D"scriptElement" domElement=3D"true">The script =
element to add to the DOM.</param>
    /// <param name=3D"completedCallback" type=3D"Function">Callback to =
call when the script has loaded or failed to load.</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;
}
$type.prototype =3D {
    get_scriptElement: function _ScriptLoaderTask$get_scriptElement() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys._ScriptLoaderTask.scriptElement">The script =
element.</value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._scriptElement;
    },
   =20
    dispose: function _ScriptLoaderTask$dispose() {
        if(this._disposed) {
            return;
        }
        this._disposed =3D true;
        this._removeScriptElementHandlers();
        Sys._ScriptLoaderTask._clearScript(this._scriptElement);
        this._scriptElement =3D null;
    },
       =20
    execute: function _ScriptLoaderTask$execute() {
        /// <summary locid=3D"M:J#Sys._ScriptLoaderTask.execute">Begins =
loading the given script element.</summary>
        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);
        }
    },
      =20
    _addScriptElementHandlers: function =
_ScriptLoaderTask$_addScriptElementHandlers() {
        this._scriptLoadDelegate =3D Function.createDelegate(this, =
this._scriptLoadHandler);
       =20
        if (document.addEventListener) {
            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);
        }
    },   =20
   =20
    _removeScriptElementHandlers: function =
_ScriptLoaderTask$_removeScriptElementHandlers() {
        if(this._scriptLoadDelegate) {
            var scriptElement =3D this.get_scriptElement();
            if (document.addEventListener) {
                $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;
        }
    },   =20

    _scriptErrorHandler: function =
_ScriptLoaderTask$_scriptErrorHandler() {
        if(this._disposed) {
            return;
        }
       =20
        this._completedCallback(this.get_scriptElement(), false);
    },
          =20
    _scriptLoadHandler: function _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
        this._completedCallback(scriptElement, true);
    } =20
}
$type.registerClass("Sys._ScriptLoaderTask", null, Sys.IDisposable);

$type._clearScript =3D function =
_ScriptLoaderTask$_clearScript(scriptElement) {
    if (!Sys.Debug.isDebug) {
        scriptElement.parentNode.removeChild(scriptElement);
    }
}

$type =3D Sys._ScriptLoader =3D function _ScriptLoader() {
    this._scriptsToLoad =3D null;
    this._sessions =3D [];
    this._scriptLoadedDelegate =3D Function.createDelegate(this, =
this._scriptLoadedHandler);
}
$type.prototype =3D {
    dispose: function _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
    },
   =20
    loadScripts: function _ScriptLoader$loadScripts(scriptTimeout, =
allScriptsLoadedCallback, scriptLoadFailedCallback, =
scriptLoadTimeoutCallback) {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.loadScripts">Begins =
loading scripts that have been queued.</summary>
        /// <param name=3D"scriptTimeout" type=3D"Number" =
integer=3D"true">Timeout in seconds for loading all scripts.</param>
        /// <param name=3D"allScriptsLoadedCallback" type=3D"Function" =
mayBeNull=3D"true">Callback for notification when all scripts have =
successfully loaded.</param>
        /// <param name=3D"scriptLoadFailedCallback" type=3D"Function" =
mayBeNull=3D"true">Callback for notification when a script fails to =
load.</param>
        /// <param name=3D"scriptLoadTimeoutCallback" type=3D"Function" =
mayBeNull=3D"true">Callback for notification when scripts have not =
finished loading within the given timeout.</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.push(session);
       =20
        if (!this._loading) {
            this._nextSession();
        }
    },
   =20
    queueCustomScriptTag: function =
_ScriptLoader$queueCustomScriptTag(scriptAttributes) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueCustomScriptTag">Queues a script =
reference with the given set of custom script element =
attributes.</summary>
        /// <param name=3D"scriptAttributes" mayBeNull=3D"false">A JSON =
object that describtes the attributes to apply to the script =
element.</param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptAttributes"}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, scriptAttributes);
    },

    queueScriptBlock: function =
_ScriptLoader$queueScriptBlock(scriptContent) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueScriptBlock">Queues a script =
reference with literal script.</summary>
        /// <param name=3D"scriptContent" type=3D"String" =
mayBeNull=3D"false">Literal script to execute.</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});
    },

    queueScriptReference: function =
_ScriptLoader$queueScriptReference(scriptUrl) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueScriptReference">Queues a script =
reference to the given script URL.</summary>
        /// <param name=3D"scriptUrl" type=3D"String" =
mayBeNull=3D"false">URL to the script to reference.</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});
    },
   =20
    _createScriptElement: function =
_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;
    },
   =20
    _loadScriptsInternal: function _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._ScriptLoaderTask._clearScript(scriptElement);
                this._loadScriptsInternal();
            }
        }
        else {
            this._stopSession();
            var callback =3D session.allScriptsLoadedCallback;
            if(callback) {
                callback(this);
            }
            this._nextSession();
        }
    },

    _nextSession: function _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();
    },

    _raiseError: function _ScriptLoader$_raiseError() {
        var callback =3D this._currentSession.scriptLoadFailedCallback;
        var scriptElement =3D this._currentTask.get_scriptElement();
        this._stopSession();
       =20
        if(callback) {
            callback(this, scriptElement);
            this._nextSession();
        }
        else {
            this._loading =3D false;
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(scriptElement.src);
        }
    },
   =20
    _scriptLoadedHandler: function =
_ScriptLoader$_scriptLoadedHandler(scriptElement, loaded) {
        if (loaded) {
            Array.add(Sys._ScriptLoader._getLoadedScripts(), =
scriptElement.src);
            this._currentTask.dispose();
            this._currentTask =3D null;
            this._loadScriptsInternal();
        }
        else {
            this._raiseError();
        }
    },
    _stopSession: function _ScriptLoader$_stopSession() {
        if(this._currentTask) {
            this._currentTask.dispose();
            this._currentTask =3D null;
        }
    }   =20
}
$type.registerClass('Sys._ScriptLoader', null, Sys.IDisposable);

$type.getInstance =3D function _ScriptLoader$getInstance() {
    var sl =3D Sys._ScriptLoader._activeInstance;
    if(!sl) {
        sl =3D Sys._ScriptLoader._activeInstance =3D new =
Sys._ScriptLoader();
    }
    return sl;
}

$type.isScriptLoaded =3D function =
_ScriptLoader$isScriptLoaded(scriptSrc) {
    var dummyScript =3D document.createElement('script');
    dummyScript.src =3D scriptSrc;
    return Array.contains(Sys._ScriptLoader._getLoadedScripts(), =
dummyScript.src);
}

$type.readLoadedScripts =3D function _ScriptLoader$readLoadedScripts() {
    if(!Sys._ScriptLoader._referencedScripts) {
        var referencedScripts =3D Sys._ScriptLoader._referencedScripts =
=3D [];

        var existingScripts =3D document.getElementsByTagName('script');
        for (var 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);
                }
            }
        }
    }
}

$type._errorScriptLoadFailed =3D function =
_ScriptLoader$_errorScriptLoadFailed(scriptUrl) {
    var errorMessage;
    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;
}

$type._getLoadedScripts =3D function _ScriptLoader$_getLoadedScripts() {
    if(!Sys._ScriptLoader._referencedScripts) {
        Sys._ScriptLoader._referencedScripts =3D [];
        Sys._ScriptLoader.readLoadedScripts();
    }
    return Sys._ScriptLoader._referencedScripts;
}
$type =3D Sys.WebForms.PageRequestManager =3D function =
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"];
}

$type.prototype =3D {
    get_isInAsyncPostBack: function =
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;
    },

    add_beginRequest: function =
PageRequestManager$add_beginRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.beginRequest">Adds a =
beginRequest event handler.</summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "beginRequest", handler);
    },
    remove_beginRequest: function =
PageRequestManager$remove_beginRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "beginRequest", handler);
    },

    add_endRequest: function PageRequestManager$add_endRequest(handler) =
{
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.endRequest">Adds a =
endRequest event handler.</summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "endRequest", handler);
    },
    remove_endRequest: function =
PageRequestManager$remove_endRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "endRequest", handler);
    },

    add_initializeRequest: function =
PageRequestManager$add_initializeRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.initializeRequest">Adds a =
initializeRequest event handler.</summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "initializeRequest", =
handler);
    },
    remove_initializeRequest: function =
PageRequestManager$remove_initializeRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "initializeRequest", =
handler);
    },

    add_pageLoaded: function PageRequestManager$add_pageLoaded(handler) =
{
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.pageLoaded">Adds a =
pageLoaded event handler.</summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "pageLoaded", handler);
    },
    remove_pageLoaded: function =
PageRequestManager$remove_pageLoaded(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "pageLoaded", handler);
    },

    add_pageLoading: function =
PageRequestManager$add_pageLoading(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.pageLoading">Adds a =
pageLoading event handler.</summary>
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.addEventHandler(this, "pageLoading", handler);
    },
    remove_pageLoading: function =
PageRequestManager$remove_pageLoading(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        Sys.Observer.removeEventHandler(this, "pageLoading", handler);
    },

    abortPostBack: function PageRequestManager$abortPostBack() {
        if (!this._processingRequest && this._request) {
            this._request.get_executor().abort();
            this._request =3D null;
        }
    },

    beginAsyncPostBack: function =
PageRequestManager$beginAsyncPostBack(updatePanelsToUpdate, eventTarget, =
eventArgument, causesValidation, validationGroup) {
        /// <summary =
locid=3D"M:J#Sys.WebForms.PageRequestManager.beginAsyncPostBack">Begins =
an asynchronous postback.</summary>
        /// <param name=3D"updatePanelsToUpdate" type=3D"Array" =
elementType=3D"String" mayBeNull=3D"true" optional=3D"true">A list of =
UniqueIDs or ClientIDs of UpdatePanel controls that should have their =
rendering updated.</param>
        /// <param name=3D"eventTarget" type=3D"String" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"eventArgument" type=3D"String" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"causesValidation" type=3D"Boolean" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"validationGroup" type=3D"String" =
mayBeNull=3D"true" optional=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "updatePanelsToUpdate", type: Array, mayBeNull: true, =
optional: true, elementType: String},
            {name: "eventTarget", type: String, mayBeNull: true, =
optional: true},
            {name: "eventArgument", type: String, mayBeNull: true, =
optional: true},
            {name: "causesValidation", type: Boolean, mayBeNull: true, =
optional: true},
            {name: "validationGroup", type: String, mayBeNull: true, =
optional: true}
        ]);
        if (e) throw e;
        if (causesValidation && (typeof(Page_ClientValidate) =3D=3D=3D =
'function') && !Page_ClientValidate(validationGroup || null)) {
            return;
        }
        this._postBackSettings =3D this._createPostBackSettings(true, =
updatePanelsToUpdate, eventTarget);
        var form =3D this._form;
        form.__EVENTTARGET.value =3D (eventTarget || "");
        form.__EVENTARGUMENT.value =3D (eventArgument || "");
        this._isCrossPost =3D false;
        this._additionalInput =3D null;
        this._onFormSubmit();
    },
   =20
    _cancelPendingCallbacks: function =
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);
                }
            }
        }
    },
   =20
    _commitControls: function =
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;
        }
    },
   =20
    _createHiddenField: function =
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;
    },

    _createPageRequestManagerTimeoutError: function =
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;
    },

    _createPageRequestManagerServerError: function =
PageRequestManager$_createPageRequestManagerServerError(httpStatusCode, =
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;
    },

    _createPageRequestManagerParserError: function =
PageRequestManager$_createPageRequestManagerParserError(parserErrorMessag=
e) {
        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;
    },

    _createPanelID: function =
PageRequestManager$_createPanelID(panelsToUpdate, postBackSettings) {
        var asyncTarget =3D postBackSettings.asyncTarget,
            toUpdate =3D this._ensureUniqueIds(panelsToUpdate || =
postBackSettings.panelsToUpdate),
            panelArg =3D (toUpdate instanceof Array)
                ? toUpdate.join(',')
                : (toUpdate || this._scriptManagerID);
        if (asyncTarget) {
            panelArg +=3D "|" + asyncTarget;
        }
        return encodeURIComponent(this._scriptManagerID) + '=3D' + =
encodeURIComponent(panelArg) + '&';
    },

    _createPostBackSettings: function =
PageRequestManager$_createPostBackSettings(async, panelsToUpdate, =
asyncTarget, sourceElement) {
        return { async:async, asyncTarget: asyncTarget, panelsToUpdate: =
panelsToUpdate, sourceElement: sourceElement };
    },

    _convertToClientIDs: function =
PageRequestManager$_convertToClientIDs(source, destinationIDs, =
destinationClientIDs, version4) {
        if (source) {
            for (var i =3D 0, l =3D source.length; i < l; i +=3D =
(version4 ? 2 : 1)) {
                var uniqueID =3D source[i],
                    clientID =3D (version4 ? source[i+1] : "") || =
this._uniqueIDToClientID(uniqueID);
                Array.add(destinationIDs, uniqueID);
                Array.add(destinationClientIDs, clientID);
            }
        }
    },

    dispose: function PageRequestManager$dispose() {
        Sys.Observer.clearEventHandlers(this);
        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;
    },
   =20
    _doCallback: function PageRequestManager$_doCallback(eventTarget, =
eventArgument, eventCallback, context, errorCallback, useAsync) {
        if (!this.get_isInAsyncPostBack()) {
            this._originalDoCallback(eventTarget, eventArgument, =
eventCallback, context, errorCallback, useAsync);
        }
    },

    _doPostBack: function 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);
            this._isCrossPost =3D false;
        }
        else {
            var mpUniqueID =3D this._masterPageUniqueID;
            var clientID =3D this._uniqueIDToClientID(eventTarget);
            var postBackElement =3D document.getElementById(clientID);
            if (!postBackElement && mpUniqueID) {
                if (clientID.indexOf(mpUniqueID + "$") =3D=3D=3D 0) {
                    postBackElement =3D =
document.getElementById(clientID.substr(mpUniqueID.length + 1));
                }
            }
            if (!postBackElement) {
                if (Array.contains(this._asyncPostBackControlIDs, =
eventTarget)) {
                    this._postBackSettings =3D =
this._createPostBackSettings(true, null, eventTarget);
                }
                else {
                    if (Array.contains(this._postBackControlIDs, =
eventTarget)) {
                        this._postBackSettings =3D =
this._createPostBackSettings(false);
                    }
                    else {
                        var nearestUniqueIDMatch =3D =
this._findNearestElement(eventTarget);
                        if (nearestUniqueIDMatch) {
                            this._postBackSettings =3D =
this._getPostBackSettings(nearestUniqueIDMatch, eventTarget);
                        }
                        else {
                            if (mpUniqueID) {
                                mpUniqueID +=3D "$";
                                if (eventTarget.indexOf(mpUniqueID) =
=3D=3D=3D 0) {
                                    nearestUniqueIDMatch =3D =
this._findNearestElement(eventTarget.substr(mpUniqueID.length));
                                }
                            }
                            if (nearestUniqueIDMatch) {
                                this._postBackSettings =3D =
this._getPostBackSettings(nearestUniqueIDMatch, eventTarget);
                            }
                            else {
                                this._postBackSettings =3D =
this._createPostBackSettings(false);
                            }
                        }
                    }
                }
            }
            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();
    },

    _doPostBackWithOptions: function =
PageRequestManager$_doPostBackWithOptions(options) {
        this._isCrossPost =3D options && options.actionUrl;
        this._originalDoPostBackWithOptions(options);
    },

    _elementContains: function =
PageRequestManager$_elementContains(container, element) {
        while (element) {
            if (element =3D=3D=3D container) {
                return true;
            }
            element =3D element.parentNode;
        }
        return false;
    },

    _endPostBack: function 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 eventArgs =3D new Sys.WebForms.EndRequestEventArgs(error, =
data ? data.dataItems : {}, executor);
        Sys.Observer.raiseEvent(this, "endRequest", eventArgs);
        if (error && !eventArgs.get_errorHandled()) {
            throw error;
        }
    },

    _ensureUniqueIds: function PageRequestManager$_ensureUniqueIds(ids) =
{
        if (!ids) return ids;
        ids =3D ids instanceof Array ? ids : [ids];
        var uniqueIds =3D [];
        for (var i =3D 0, l =3D ids.length; i < l; i++) {
            var id =3D ids[i], index =3D =
Array.indexOf(this._updatePanelClientIDs, id);
            uniqueIds.push(index > -1 ? this._updatePanelIDs[index] : =
id);
        }
        return uniqueIds;
    },

    _findNearestElement: function =
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;
    },

    _findText: function 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);
    },
   =20
    _fireDefaultButton: function =
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;
    },

    _getPageLoadedEventArgs: function =
PageRequestManager$_getPageLoadedEventArgs(initialLoad, data) {

        var updated =3D [];
        var created =3D [];
        var version4 =3D data ? data.version4 : false;
        var upData =3D data ? data.updatePanelData : null;

        var newIDs, newClientIDs, childIDs, refreshedIDs;

        if (!upData) {
            newIDs =3D this._updatePanelIDs;
            newClientIDs =3D this._updatePanelClientIDs;
            childIDs =3D null;
            refreshedIDs =3D null;
        }
        else {
            newIDs =3D upData.updatePanelIDs;
            newClientIDs =3D upData.updatePanelClientIDs;
            childIDs =3D upData.childUpdatePanelIDs;
            refreshedIDs =3D upData.panelsToRefreshIDs;
        }

        var i, l, uniqueID, clientID;
        if (refreshedIDs) {
            for (i =3D 0, l =3D refreshedIDs.length; i < l; i +=3D =
(version4 ? 2 : 1)) {
                uniqueID =3D refreshedIDs[i];
                clientID =3D (version4 ? refreshedIDs[i+1] : "") || =
this._uniqueIDToClientID(uniqueID);
                Array.add(updated, document.getElementById(clientID));
            }
        }

        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(newClientIDs[i]));
            }
        }

        return new Sys.WebForms.PageLoadedEventArgs(updated, created, =
data ? data.dataItems : {});
    },

    _getPageLoadingEventArgs: function =
PageRequestManager$_getPageLoadingEventArgs(data) {

        var updated =3D [],
            deleted =3D [],
            upData =3D data.updatePanelData,
            oldIDs =3D upData.oldUpdatePanelIDs,
            oldClientIDs =3D upData.oldUpdatePanelClientIDs,
            newIDs =3D upData.updatePanelIDs,
            childIDs =3D upData.childUpdatePanelIDs,
            refreshedIDs =3D upData.panelsToRefreshIDs,
            i, l, uniqueID, clientID,
            version4 =3D data.version4;
        for (i =3D 0, l =3D refreshedIDs.length; i < l; i +=3D (version4 =
? 2 : 1)) {
            uniqueID =3D refreshedIDs[i];
            clientID =3D (version4 ? refreshedIDs[i+1] : "") || =
this._uniqueIDToClientID(uniqueID);
            Array.add(updated, document.getElementById(clientID));
        }

        for (i =3D 0, l =3D oldIDs.length; i < l; i++) {
            uniqueID =3D oldIDs[i];
            if (Array.indexOf(refreshedIDs, uniqueID) =3D=3D=3D -1 &&
                (Array.indexOf(newIDs, uniqueID) =3D=3D=3D -1 || =
Array.indexOf(childIDs, uniqueID) > -1)) {
                Array.add(deleted, =
document.getElementById(oldClientIDs[i]));
            }
        }

        return new Sys.WebForms.PageLoadingEventArgs(updated, deleted, =
data.dataItems);
    },

    _getPostBackSettings: function =
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, null, elementUniqueID, =
originalElement);
                }
                else {
                    if (!proposedSettings && =
Array.contains(this._postBackControlClientIDs, element.id)) {
                        return this._createPostBackSettings(false);
                    }
                    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, null, elementUniqueID, =
originalElement);
                            }
                        }
                    }
                }

                if (!proposedSettings && =
this._matchesParentIDInList(element.id, =
this._asyncPostBackControlClientIDs)) {
                    proposedSettings =3D =
this._createPostBackSettings(true, null, elementUniqueID, =
originalElement);
                }
                else {
                    if (!proposedSettings && =
this._matchesParentIDInList(element.id, this._postBackControlClientIDs)) =
{
                        return this._createPostBackSettings(false);
                    }
                }
            }

            element =3D element.parentNode;
        }

        if (!proposedSettings) {
            return this._createPostBackSettings(false);
        }
        else {
            return proposedSettings;
        }
    },

    _getScrollPosition: function 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
                    };
                }
            }
        }
    },

    _initializeInternal: function =
PageRequestManager$_initializeInternal(scriptManagerID, formElement, =
updatePanelIDs, asyncPostBackControlIDs, postBackControlIDs, =
asyncPostBackTimeout, masterPageUniqueID) {
        if (this._prmInitialized) {
            throw =
Error.invalidOperation(Sys.WebForms.Res.PRM_CannotRegisterTwice);
        }
        this._prmInitialized =3D true;
        this._masterPageUniqueID =3D masterPageUniqueID;
        this._scriptManagerID =3D scriptManagerID;
        this._form =3D Sys.UI.DomElement.resolveElement(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);
        if (updatePanelIDs) {
            this._updateControls(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, asyncPostBackTimeout, =
true);
        }
    },

    _matchesParentIDInList: function =
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;
    },
   =20
    _onFormElementActive: function =
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);
            }
        }
    },

    _onFormElementClick: function =
PageRequestManager$_onFormElementClick(evt) {
        this._activeDefaultButtonClicked =3D (evt.target =3D=3D=3D =
this._activeDefaultButton);
        this._onFormElementActive(evt.target, evt.offsetX, evt.offsetY);
    },

    _onFormSubmit: function PageRequestManager$_onFormSubmit(evt) {
        var i, l, continueSubmit =3D true,
            isCrossPost =3D this._isCrossPost;
        this._isCrossPost =3D false;

        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 || !this._postBackSettings.async) {
            return;
        }

        var formBody =3D new Sys.StringBuilder(),
            count =3D form.elements.length,
            panelID =3D this._createPanelID(null, =
this._postBackSettings);
        formBody.append(panelID);

        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 panelsToUpdate, eventArgs;
        panelsToUpdate =3D this._postBackSettings.panelsToUpdate;
        eventArgs =3D new =
Sys.WebForms.InitializeRequestEventArgs(request, =
this._postBackSettings.sourceElement, panelsToUpdate);
        Sys.Observer.raiseEvent(this, "initializeRequest", eventArgs);
        continueSubmit =3D !eventArgs.get_cancel();

        if (!continueSubmit) {
            if (evt) {
                evt.preventDefault();
            }
            return;
        }
       =20
        if (eventArgs && eventArgs._updated) {
            panelsToUpdate =3D eventArgs.get_updatePanelsToUpdate();
            request.set_body(request.get_body().replace(panelID, =
this._createPanelID(panelsToUpdate, this._postBackSettings)));
        }

        this._scrollPosition =3D this._getScrollPosition();


        this.abortPostBack();

        eventArgs =3D new Sys.WebForms.BeginRequestEventArgs(request, =
this._postBackSettings.sourceElement,
            panelsToUpdate || this._postBackSettings.panelsToUpdate);
        Sys.Observer.raiseEvent(this, "beginRequest", eventArgs);
       =20
        if (this._originalDoCallback) {
            this._cancelPendingCallbacks();
        }

        this._request =3D request;
        this._processingRequest =3D false;
        request.invoke();

        if (evt) {
            evt.preventDefault();
        }
    },

    _onFormSubmitCompleted: function =
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,
                oldUpdatePanelClientIDs =3D this._updatePanelClientIDs;
            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);

            var v4 =3D data.version4;
            for (i =3D 0, l =3D panelsToRefreshIDs.length; i < l; i+=3D =
(v4 ? 2 : 1)) {
                var panelClientID =3D (v4 ? panelsToRefreshIDs[i+1] : =
"") || 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, v4);
            updatePanelData.oldUpdatePanelIDs =3D oldUpdatePanelIDs;
            updatePanelData.oldUpdatePanelClientIDs =3D =
oldUpdatePanelClientIDs;
            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 Sys.Observer._getContext(this, =
true).events.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
    },
   =20
    _onWindowUnload: function PageRequestManager$_onWindowUnload(evt) {
        this.dispose();
    },

    _pageLoaded: function PageRequestManager$_pageLoaded(initialLoad, =
data) {
        Sys.Observer.raiseEvent(this, "pageLoaded", =
this._getPageLoadedEventArgs(initialLoad, data));
        if (!initialLoad) {
            Sys.Application.raiseLoad();
        }
    },

    _pageLoadedInitialLoad: function =
PageRequestManager$_pageLoadedInitialLoad(evt) {
        this._pageLoaded(true, null);
    },
   =20
    _parseDelta: function 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,
            versionNode;

        for (var i =3D 0, l =3D delta.length; i < l; i++) {
            var deltaNode =3D delta[i];
            switch (deltaNode.type) {
                case "#":
                    versionNode =3D deltaNode;
                    break;
                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 (versionNode && parseFloat(versionNode.content) =
>=3D 4) {
                        deltaNode.content =3D =
unescape(deltaNode.content);
                    }
                    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 null;
                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;
            } // switch
        } // for (var i =3D 0, l =3D delta.length; i < l; i++)
        return {
            version4: versionNode ? (parseFloat(versionNode.content) =
>=3D 4) : false,
            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 };
    },
   =20
    _processUpdatePanelArrays: function =
PageRequestManager$_processUpdatePanelArrays(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, version4) {
        var newUpdatePanelIDs, newUpdatePanelClientIDs, =
newUpdatePanelHasChildrenAsTriggers;
       =20
        if (updatePanelIDs) {
            var l =3D updatePanelIDs.length,
                m =3D version4 ? 2 : 1;
            newUpdatePanelIDs =3D new Array(l/m);
            newUpdatePanelClientIDs =3D new Array(l/m);
            newUpdatePanelHasChildrenAsTriggers =3D new Array(l/m);
           =20
            for (var i =3D 0, j =3D 0; i < l; i +=3D m, j++) {
                var ct,
                    uniqueID =3D updatePanelIDs[i],
                    clientID =3D version4 ? updatePanelIDs[i+1] : "";
                ct =3D (uniqueID.charAt(0) =3D=3D=3D 't');
                uniqueID =3D uniqueID.substr(1);
                if (!clientID) {
                    clientID =3D this._uniqueIDToClientID(uniqueID);
                }
                newUpdatePanelHasChildrenAsTriggers[j] =3D ct;
                newUpdatePanelIDs[j] =3D uniqueID;
                newUpdatePanelClientIDs[j] =3D clientID;
            }
        }
        else {
            newUpdatePanelIDs =3D [];
            newUpdatePanelClientIDs =3D [];
            newUpdatePanelHasChildrenAsTriggers =3D [];
        }

        var newAsyncPostBackControlIDs =3D [];
        var newAsyncPostBackControlClientIDs =3D [];
        this._convertToClientIDs(asyncPostBackControlIDs, =
newAsyncPostBackControlIDs, newAsyncPostBackControlClientIDs, version4);

        var newPostBackControlIDs =3D [];
        var newPostBackControlClientIDs =3D [];
        this._convertToClientIDs(postBackControlIDs, =
newPostBackControlIDs, newPostBackControlClientIDs, version4);
       =20
        return {
            updatePanelIDs: newUpdatePanelIDs,
            updatePanelClientIDs: newUpdatePanelClientIDs,
            updatePanelHasChildrenAsTriggers: =
newUpdatePanelHasChildrenAsTriggers,
            asyncPostBackControlIDs: newAsyncPostBackControlIDs,
            asyncPostBackControlClientIDs: =
newAsyncPostBackControlClientIDs,
            postBackControlIDs: newPostBackControlIDs,
            postBackControlClientIDs: newPostBackControlClientIDs
        };
    },
   =20
    _queueScripts: function =
PageRequestManager$_queueScripts(scriptLoader, scriptBlockNodes, =
queueIncludes, queueBlocks) {
        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 =3D window.eval("(" + =
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
    },

    _registerDisposeScript: function =
PageRequestManager$_registerDisposeScript(panelID, disposeScript) {
        if (!this._scriptDisposes[panelID]) {
            this._scriptDisposes[panelID] =3D [disposeScript];
        }
        else {
            Array.add(this._scriptDisposes[panelID], disposeScript);
        }
    },
   =20
    _scriptIncludesLoadComplete: function =
PageRequestManager$_scriptIncludesLoadComplete(scriptLoader, data) {
        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);

    },
   =20
    _scriptIncludesLoadFailed: function =
PageRequestManager$_scriptIncludesLoadFailed(scriptLoader, =
scriptElement, multipleCallbacks, data) {
        data.scriptsFailed =3D { src: scriptElement.src, =
multipleCallbacks: multipleCallbacks };
        this._scriptIncludesLoadComplete(scriptLoader, data);
    },

    _scriptsLoadComplete: function =
PageRequestManager$_scriptsLoadComplete(scriptLoader, data) {
        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;
        }
    },

    _splitNodeIntoArray: function =
PageRequestManager$_splitNodeIntoArray(node) {
        var str =3D node.content;
        var arr =3D str.length ? str.split(',') : [];
        return arr;
    },

    _uniqueIDToClientID: function =
PageRequestManager$_uniqueIDToClientID(uniqueID) {
        return uniqueID.replace(/\$/g, '_');
    },
   =20
    _updateControls: function =
PageRequestManager$_updateControls(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, asyncPostBackTimeout, =
version4) {
        this._commitControls(
            this._processUpdatePanelArrays(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, version4),
            asyncPostBackTimeout);
    },
   =20
    _updatePanel: function =
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++) {
                    window.eval(disposeScripts[i]);
                }

                delete this._scriptDisposes[updatePanelID];
            }
        }

        Sys.Application.disposeElement(updatePanelElement, true);

        updatePanelElement.innerHTML =3D rendering;
    },

    _validPosition: function PageRequestManager$_validPosition(position) =
{
        return (typeof(position) !=3D=3D "undefined") && (position =
!=3D=3D null) && (position !=3D=3D 0);
    }
}

$type.getInstance =3D function PageRequestManager$getInstance() {
    /// <summary =
locid=3D"M:J#Sys.WebForms.PageRequestManager.getInstance">Gets the =
current instance of the PageRequestManager.</summary>
    /// <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;
}

$type._addArrayElement =3D function =
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]);
    }
}

$type._initialize =3D function PageRequestManager$_initialize() {
    var prm =3D Sys.WebForms.PageRequestManager.getInstance();
    prm._initializeInternal.apply(prm, arguments);
}

$type.registerClass('Sys.WebForms.PageRequestManager');
$type =3D Sys.UI._UpdateProgress =3D function _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;
}
$type.prototype =3D {
    get_displayAfter: function _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;
    },
    set_displayAfter: function _UpdateProgress$set_displayAfter(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        this._displayAfter =3D value;
    },
    get_dynamicLayout: function _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;
    },
    set_dynamicLayout: function _UpdateProgress$set_dynamicLayout(value) =
{
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._dynamicLayout =3D value;
    },
    get_associatedUpdatePanelId: function =
_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;
    },
    set_associatedUpdatePanelId: function =
_UpdateProgress$set_associatedUpdatePanelId(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String, mayBeNull: true}]);
        if (e) throw e;
        this._associatedUpdatePanelId =3D value;
    },
    get_role: function _UpdateProgress$get_role() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI._UpdateProgress.role"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return "status";
    },
    _clearTimeout: function _UpdateProgress$_clearTimeout() {
        if (this._timerCookie) {
            window.clearTimeout(this._timerCookie);
            this._timerCookie =3D null;
        }
    },
    _getUniqueID: function _UpdateProgress$_getUniqueID(clientID) {
        var i =3D =
Array.indexOf(this._pageRequestManager._updatePanelClientIDs, clientID);
        return i =3D=3D=3D -1 ? null : =
this._pageRequestManager._updatePanelIDs[i];
    },
    _handleBeginRequest: function =
_UpdateProgress$_handleBeginRequest(sender, arg) {
        var curElem =3D arg.get_postBackElement(),
            showProgress =3D true,
            upID =3D this._associatedUpdatePanelId;
        if (this._associatedUpdatePanelId) {
            var updating =3D arg.get_updatePanelsToUpdate();
            if (updating && updating.length) {
                showProgress =3D (Array.contains(updating, upID) || =
Array.contains(updating, this._getUniqueID(upID)))
            }
            else {
                showProgress =3D false;
            }
        }
        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);
        }
    },
    _startRequest: function _UpdateProgress$_startRequest() {
        if (this._pageRequestManager.get_isInAsyncPostBack()) {
            var element =3D this.get_element();
            if (this._dynamicLayout) {
                element.style.display =3D 'block';
            }
            else {
                element.style.visibility =3D 'visible';
            }
            if (this.get_role() =3D=3D=3D "status") {
                element.setAttribute("aria-hidden", "false");
            }
        }
        this._timerCookie =3D null;
    },
    _handleEndRequest: function =
_UpdateProgress$_handleEndRequest(sender, arg) {
        var element =3D this.get_element();
        if (this._dynamicLayout) {
            element.style.display =3D 'none';
        }
        else {
            element.style.visibility =3D 'hidden';
        }
        if (this.get_role() =3D=3D=3D "status") {
            element.setAttribute("aria-hidden", "true");
        }
        this._clearTimeout();
    },
    dispose: function _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");
    },
    initialize: function _UpdateProgress$initialize() {
        Sys.UI._UpdateProgress.callBaseMethod(this, 'initialize');
        if (this.get_role() =3D=3D=3D "status") {
            this.get_element().setAttribute("aria-hidden", "true");
        }
    	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);=

    	}
    }
}
$type.registerClass('Sys.UI._UpdateProgress', Sys.UI.Control);

}

if (window.Sys && Sys.loader) {
	Sys.loader.registerScript("WebForms", ["ComponentModel", =
"Serialization", "Network"], execute);
}
else {
	execute();
}

})();

Type.registerNamespace('Sys.WebForms');
Sys.WebForms.Res=3D{
"PRM_UnknownToken":"Unknown token: \u0027{0}\u0027.",
"PRM_MissingPanel":"Could not find UpdatePanel with ID \u0027{0}\u0027. =
If it is being updated dynamically then it must be inside another =
UpdatePanel.",
"PRM_ServerError":"An unknown error occurred while processing the =
request on the server. The status code returned from the server was: =
{0}",
"PRM_ParserError":"The message received from the server could not be =
parsed.",
"PRM_TimeoutError":"The server request timed out.",
"PRM_ParserErrorDetails":"Error parsing near \u0027{0}\u0027.",
"PRM_CannotRegisterTwice":"The PageRequestManager cannot be initialized =
more than once."
};

------=_NextPart_000_0000_01CC0193.A0CC0FD0--

